openapi: 3.0.3 info: termsOfService: https://notifichedigitali.pagopa.it/pubbliche-amministrazioni/index.html x-api-id: api-external-b2b-pa title: 'Piattaforma Notifiche: API B2B per le Pubbliche Amministrazioni' x-summary: 'Piattaforma Notifiche: API B2B per le Pubbliche Amministrazioni' version: 1.0.0 description: >- ## Abstract API utilizzate dalle pubbliche amministrazioni per __inviare richieste di notifiche__ e __ottenere informazioni in modalità pull__ sullo stato della _"richiesta di notifica"_ (accettata o rifiutata) e, in caso di richiesta accettata, sulle comunicazioni effettuate, o solo tentate, nei confronti dei destinatari della notifica. ## Operazioni utilizzate, in sequenza temporale
Invio notifica


#### 3. Verifica accettazione richiesta di invio notifica Per questa verifica possono essere utilizzate due modalità: 1. __richiesta puntale__: consigliato solo ai fini di test 2. __lettura da stream configurato__: consigliato per ambienti di produzione La differenza tra le due modalità è nell'interazione e nell'efficienza. Con la modalità _"richiesta puntuale"_ è necessario l'invocazione per ogni notifica, mentre con la modalità _"stream"_ è possibile avere gli aggiornamenti di stato di più notifiche con una sola invocazione. #### 3.1 Richiesta puntuale di verifica accettazione Questa modalità è resa disponibile solo ai fini di test o di eventuali operazioni di allineamento poiché richiede l'invio di una richiesta per ogni notifica. Se il passo (2) avviene con successo si utilizza l'operazione [getNotificationRequestStatus](#/SenderReadB2B/retrieveNotificationRequestStatusV21) per ottenere informazioni riguardo allo stato della "richiesta di invio di notifica".
Nel campo _notificationRequestStatus_ sarà indicato:
>\- WAITING: se la validazione è ancora in corso.
\- ACCEPTED: se richiesta di notifica accettata, lo _IUN_ è valorizzato.
\- REFUSED: se richiesta di notifica rifiutata, è valorizzato il campo _errors_.



#### 3.2 Richiesta avanzamento via "stream" di verifica di accettazione Questa modalità è consigliata. Per essere fruita è necessaria un'operazione preliminare tramite la chiamata alla API [createEventStream](https://petstore.swagger.io/?url=https%3A%2F%2Fraw.githubusercontent.com%2Fpagopa%2Fpn-delivery-push%2Fmain%2Fdocs%2Fopenapi%2Fapi-external-b2b-webhook.yaml#/Streams/createEventStream) per configurare uno "stream" che registri il cambio di stato della notifica con il seguente payload:

`` { "title": "NotificationAccepted", "eventType": "STATUS", "filterValues": [ "ACCEPTED" ] } ``

Successivamente si possono ottenere i dati richiamando la API [consumeEventStream](https://petstore.swagger.io/?url=https%3A%2F%2Fraw.githubusercontent.com%2Fpagopa%2Fpn-delivery-push%2Fmain%2Fdocs%2Fopenapi%2Fapi-external-b2b-webhook.yaml#/Events/consumeEventStream) __NOTA__ saranno disponibili i dati di cambiamento di stato occorsi solo successivamente alla configurazione dello stream.



### Ciclo di vita della notifica lato mittente #### 1. Caricamento dei documenti della notifica Prima di invocare la richiesta di notifica è necessario caricare i documenti della notifica (documenti e bollettini/metadati di pagamento). [Schema Metadata F24](#/components/schemas/F24Metadata) #### 1.a. Richiesta presigned Url Invocare l'operazione [presignedUploadRequest](#/NewNotification/presignedUploadRequest) con cui prenotare il caricamento. Possono essere effettuate un massimo di 15 prenotazioni di caricamento per ogni richiesta.
In risposta si ottengono le seguenti informazioni:
\- httpMethod
\- secret
\- url
L'url restituito ha una validità di 1h.
#### 1.b Upload documenti della notifica Per ogni documento utilizzare un richiesta HTTP con metodo _httpMethod_ (POST o PUT) all'url indicato dal campo _url_.
In tale richiesta vanno aggiunti i seguenti header:
\- _content-type_: valorizzato come il campo "contentType" della richiesta di cui al punto (1.a)
\- _x-amz-meta-secret_: valorizzato con il valore del campo "secret" della risposta di cui al punto (1.a)
\- _trailer_: valorizzato con ```x-amz-checksum-sha256```
\- _x-amz-checksum-sha256_: valorizzato con il checksum sha256, codificato in base 64, del contenuto binario del file che verrà caricato. (__N.B.__ questo è un trailer HTTP non un header). Vedi [HTTP Trailer](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Trailer)
__NOTA:__ se l'operazione di upload è stata eseguita con successo, si otterrà come risposta _status 200 OK_.
Nell'header di questa risposta, si otterrà il campo __x-amz-version-id__ che dovrà essere utilizzato durante
l'inserimento della notifica, nel campo ref.__versionToken__ in corrispondenza del documento ad esso associato.


#### 2. Richiesta di invio della notifica Per effettuare una richiesta di invio notifica, invocare l'operazione [sendNewNotification](#/NewNotification/sendNewNotificationV21) utilizzando i riferimenti dei file caricati ottenuti al punto (1.b).


Verifica accettazione richiesta
### 4. Monitorare l'avanzamento di una notifica Allo stesso modo del monitoraggio dell'accettazione della notifica da parte della Piattaforma sono disponibili le due modalità. #### 4.1 Monitoraggio puntuale Se la "richiesta di invio di notifica" passa le validazioni viene trasformata in "notifica" e sarà identificata dalla IUN restituito dall'operazione [getNotificationRequestStatus](#/SenderReadB2B/retrieveNotificationRequestStatusV21).
A tal punto si potranno utilizzare l'operazione _GET /delivery/v2.1/notifications/sent/{iun}_ per ottenere i dettagli della notifica, la _timeline_ che dettaglia il perfezionamento della notifica per il mittente e l'avanzamento delle comunicazioni nei confronti dei destinatari. #### 4.1 Monitoraggio tramite stream Questa modalità è consigliata in produzione. Per essere fruita è necessaria una operazione preliminare tramite la chiamata alla API [createEventStream](#/Streams/createEventStream) per configurare uno "stream" che registri il cambio di stato della notifica con il seguente payload di esempio:

`` { "title": "NotificationAccepted", "eventType": "STATUS" } ``

che permette di monitorare gli eventi di tipo "STATO". Successivamente si può ottenere il dettaglio della stream appena creata chiamando la API [getEventStream](https://petstore.swagger.io/?url=https%3A%2F%2Fraw.githubusercontent.com%2Fpagopa%2Fpn-delivery-push%2Fdevelop%2Fdocs%2Fopenapi%2Fapi-external-b2b-webhook.yaml#/Streams/getEventStream), mentre si possono ottenere i dati degli eventi richiamando la API [consumeEventStream](https://petstore.swagger.io/?url=https%3A%2F%2Fraw.githubusercontent.com%2Fpagopa%2Fpn-delivery-push%2Fdevelop%2Fdocs%2Fopenapi%2Fapi-external-b2b-webhook.yaml#/Events/consumeEventStream) ``

che permette di monitorare gli eventi di tipo "STATO". Successivamente si può ottenere il dettaglio dello stream appena creato chiamando la API [getEventStream](#/Streams/getEventStream)), mentre si possono ottenere i dati degli eventi richiamando la API [consumeEventStream](#/Streams/consumeEventStream) __NOTA__ saranno disponibili i dati di cambiamento di stato occorsi solo successivamente alla configurazione dello stream.
### 5. Download dei Legal Facts E' possibile scaricare le Attestazioni Opponibili a Terzi e gli altri documenti conservati da Piattaforma Notifiche attraverso il servizio di [dowload Legal Fact](#/SenderReadB2B/retrieveSentNotificationDocument) passando all'interno del path lo Iun, il legalFactType ed il legalFactId; si otterrà nella response un link che permette di scaricare il documento richiesto.
Per ottenere il legalFactType ed il legalFactId bisogna chiamare il servizio di [lettura dettaglio notifica](#/SenderReadB2B/retrieveSentNotification) con lo {Iun} della notifica di interesse: all'interno del campo timeline della response è possibile trovare l'elenco degli eventi di quella notifica ed i legalFactType e legalFactId in corrispondenza degli eventi che generano documenti.
AMBIENTI


# Piattaforma Notifiche: API B2B avanzamento notifiche I mittenti di notifica possono seguire il flusso di avanzamento delle notifiche in modo automatico. E' possibile definire fino ad un massimo di 5 configurazioni di flussi per singola PA su informazioni relative a:
- cambiamento di stato della notifica;
- inserimento di elementi nella timeline.
Per ognuno di questi elementi è possibile definire un filtro per ricevere solo alcuni cambiamenti di stato o determinati eventi di timeline di maggiore interesse.
In assenza del filtro verranno restituiti tutti gli elementi relativi alla v1.
Si consiglia di creare gli stream prima dell'invio delle notifiche perché gli stati o gli eventi di timeline vengono registrati solo successivamente alla creazione dello stream.

__Esempio:__ - Stream contenente tutte le notifiche in stato Cancellato:

`` { "title": "NotificationCancelled", "eventType": "STATUS", "filterValues": [ "CANCELLED" ] } ``

__Esempio:__ - Stream contenente tutte le notifiche in stato Accettato o Consegnato:

`` { "title": "NotificationAcceptedOrDelivered", "eventType": "STATUS", "filterValues": [ "ACCEPTED","DELIVERED" ] } ``

__Esempio:__ - Stream contenente tutti gli eventi di timeline NOTIFICATION_VIEWED:

`` { "title": "TimelineNotificationViewed", "eventType": "TIMELINE", "filterValues": [ "NOTIFICATION_VIEWED" ] } ``

Gli stati della notifica che possono essere inseriti come __filterValues__ sono i seguenti:
Stati - v1

Le categorie degli eventi di timeline che possono essere inseriti come __filterValues__ sono i seguenti:
Eventi di timeline - v1
Eventi di timeline - v2 (tutti gli elementi v1 + gli elementi seguenti)

Di seguito un esempio di creazione e successiva interrogazione dello stream:
Esempio dello stream

### 1) Creazione dello stream ed inserimento notifica In questo esempio creo 2 stream con il servizio di [creazione stream](#/Streams/createEventStream): uno per gli status
e l'altro per gli eventi di timeline.
Vedesi le request a) di esempio con le relative response b), Da notare che sono presenti
dei filtri per ottenere solo specifici status o eventi; se si vogliono ottenere tutte
le variazioni limitatamente agli eventi della v1, non bisogna inserire alcun filtro: "filterValues": []
Una volta creati gli stream, bisogna utilizzare il servizio di [inserimento nuova notifica](https://petstore.swagger.io/?url=https://raw.githubusercontent.com/pagopa/pn-delivery/develop/docs/openapi/api-external-b2b-pa-v1.yaml#/NewNotification/sendNewNotification)
sulla Piattaforma. A questo punto bisognerà attendere che vengano completati i controlli
di validazione e se questi avranno esito positivo e la notifica verrà accettata, comincerà
il workflow di consegna della stessa. Con l'avanzare del tempo verranno generati degli
eventi e dei cambiamenti di stato che verranno puntualmente registrati negli stream
configurati precedentemente a partire già dal primo evento che certifica l'accettazione
o il rifiuto della notifica appena inserita con il relativo passaggio allo stato ACCEPTED.







### 2) Prima interrogazione degli stream appena creati Col passare del tempo, potremo interrogare gli stream appena creati per leggere
gli eventi registrati, a partire già dall'evento di accettazione della notifica.
Si possono interrogare gli eventi registrati all'interno di uno stream con il servizio
di [lettura degli eventi](#/Events/consumeEventStream) passando il valore desiderato nello {streamId} ed otterremo
la response c) che contiene un array con un numero massimo di 50 eventi corrispondenti
a quelli che impattano tutte le notifiche inserite dalla creazione dello stream in poi
e che potranno essere salvati sul database del client chiamante.
Da notare che ogni evento contiene l'eventId ad esso associato.
A questo punto bisogna controllare il parametro retry-after contenuto nell'header
della response per capire quanto tempo attendere prima di richiamare lo stream
ed ottenere nuovi risultati:
  • Se retry-after = 0 significa che lo stream contiene ulteriori eventi rispetto
    a quelli che ho appena ottenuto nella response e quindi posso richiamare subito
    il servizio e consumare gli eventi successivi

  • se retry-after ≠ 0 significa che lo stream NON contiene altri eventi rispetto
    a quelli che ottenuti in questa chiamata e quindi dovrò attendere la quantità
    di tempo indicata nel retry-after prima di effettuare un'altra chiamata
    per consumare ulteriori eventi
NOTA: è importante consumare SEMPRE gli eventi che vengono restituiti dallo stream, anche se il retry-after ≠ 0; infatti tale parametro regola la cadenza di chiamata al servizio, mentre il consumo degli eventi deve avvenire in ogni chiamata nella quale si ottengono eventi in risposta.


### 3) Successive interrogazioni degli stream appena creati Se la response della prima interrogazione degli stream restituisce nell'header: retry-after = 0
significa che lo stream contiene altri eventi che possono essere consumati subito con
un'ulteriore chiamata al servizio di [lettura degli eventi](#/Events/consumeEventStream), ma questa volta per consumare
gli eventi successivi, bisogna valorizzare nei query params della request
il parametro lastEventId con l'eventId ottenuto nella precedente chiamata.
Così facendo il servizio eliminerà dallo stream tutti gli eventi precedenti a quello inserito
nel lastEventId e restituirà nella response d) solamente quelli successivi.
A questo punto si potrà capire, sempre dal valore del retry-after contenuto nell'header
se chiamare subito il servizio ed inserire il lastEventId di questa ulteriore chiamata
o attendere il tempo indicato nell'header
NOTA: gli eventi eliminati dallo stream in seguito alla chiamata del servizio di [lettura degli eventi](#/Events/consumeEventStream)
con il query param lastEventId valorizzato, non potranno più essere recuperati dallo stream
in nessun modo. E' quindi fondamentale salvare di volta in volta gli eventi che si ottengono
all'interno database del chiamante, rispettando la logica del producer/consumer di eventi
proposta dagli stream.
In caso di eliminazione degli eventi avvenuta per errore, sarà possibile come ultima istanza
chiamare il servizio di [lettura dettaglio notifica](https://petstore.swagger.io/?url=https://raw.githubusercontent.com/pagopa/pn-delivery/develop/docs/openapi/api-external-b2b-pa-v1.yaml#/SenderReadB2B/retrieveSentNotification) che però esporrà tutti gli eventi di timeline e lo stato
attuale della singola notifica ed è quindi meno performante delle stream.
#### a) Request di POST /delivery-progresses/streams { { "title": "stream-status-prova", "title": "stream-timeline-prova", "eventType": "STATUS", "eventType": "TIMELINE", "filterValues": [ "filterValues": [ "ACCEPTED" "REQUEST_ACCEPTED" ] ] } } #### b) Response di POST /delivery-progresses/streams { { "title": "stream-status-prova", "title": "stream-timeline-prova", "eventType": "STATUS", "eventType": "TIMELINE", "filterValues": [ "filterValues": [ "ACCEPTED" "REQUEST_ACCEPTED" ], ], "streamId": "streamId": "4e6d5e59-85fc-4ef7-bad8", "6d87ree59-31ff-2rr7-lok1", "activationDate": "activationDate": "2022-12-12T14:52:23.362454Z" "2022-12-12T14:53:23.362454Z" } }

#### c) Response di GET /delivery-progresses/streams/{streamId}/events Headers: { "retry-after": "60000" } [ { "eventId": "0000000000000000000001", "timestamp": "2022-12-06T08:14:26.140041Z", "notificationRequestId": "QUJDRC1BQkNELUFCQ0QtMjAyMjEyLVYtMQ==", "iun": "ABCD-ABCD-ABCD-202212-V-1", "newStatus": "ACCEPTED", "timelineEventCategory": "REQUEST_ACCEPTED", "recipientIndex": "0", "analogCost": "0", "channel": "PEC", "legalfactIds": [ "PN_LEGAL_FACTS-0002-9G2S-RK3M-JI62-JK9Q", "PN_LEGAL_FACTS-0002-9G2S-RK3M-JI62-JK9E" ] }, ... // altri eventi nell'array ]






#### d) Response di GET /delivery-progresses/streams/{streamId}/events
chiamato valorizzando nei query params il parametro lastEventId con l'eventId
dell'ultimo evento nella precedente chiamata.
Headers: { "retry-after": "60000" } [ { "eventId": "0000000000000000000011", "timestamp": "2022-12-07T10:13:22.158041Z", "notificationRequestId": "QUJDRC1BQkNELUFCQ0QtMjAyMjEyLVYtMQ==", "iun": "ABCD-ABCD-ABCD-202212-V-1", "newStatus": "DELIVERED", "timelineEventCategory": "DIGITAL_SUCCESS_WORKFLOW", "recipientIndex": "0", "analogCost": "0", "channel": "PEC", "legalfactIds": [ "PN_LEGAL_FACTS-0002-9G2S-RK3M-JI62-JK9Q", "PN_LEGAL_FACTS-0002-9G2S-RK3M-JI62-JK9E" ] }, ... // altri eventi nell'array ]


Le operazioni con il tag __Streams__ gestiscono la configurazione:
- [Creazione](#/Streams/createEventStream)
- [Elencare la lista degli stream creati](#/Streams/listEventStreams)
- [Leggere i metadati dello stream](#/Streams/getEventStream)
- [Modifica](#/Streams/updateEventStream)
- [Cancellazione](#/Streams/deleteEventStream)
Le operazioni con il tag __Events__ sono quelle utilizzate per la [lettura degli eventi](#/Events/consumeEventStream) filtrati in base alla configurazione impostata negli streams. La api restituisce un massimo di 50 elementi. Se esistono ulteriori eventi nello stream, allora la response del servizio restituice l'elemento `retryAfter = 0`; ed è quindi possibile richiamare immediatamente il servizio per ottenere gli eventi successivi, utilizzando il parametro _lastEventId_ valorizzato con l'ultimo _eventId_ della richiesta precedente. Si evidenzia che ogni nuova chiamata al servizio con _lastEventId_ implica la cancellazione degli eventi precedenti. Tuttavia, in fase di implementazione del client che consumerà i servizi, bisogna considerare il fattore della __non univocità degli eventi__: è possibile che se in un dato secondo avvengano più eventi contemporaneamente, nella chiamata successiva allo stream dove si inserisce l'_eventId_, non vengano cancellati gli altri eventi contemporanei avvenuti nello stesso secondo dell'_eventId_ indicato; ottenendo quindi una riproposizione di eventi già ottenuti dalla chiamata precedente.
Se non esistono ulteriori eventi nello stream, allora la response del servizio restituisce il valore di `retryAfter ≠ 0` ed è quindi necessario attendere il tempo indicato dalla retryAfter per consumare eventualmente nuovi eventi nello stream.
Nella prima versione di Piattaforma Notifiche non verrà implementata la segregazione dei gruppi e pertanto le informazioni presenti all'interno di uno stream saranno accessibili a tutte le apiKey della stessa PA; Si evidenzia comunque che gli eventi esposti dalle stream sono anonimizzati e non contengono informazioni personali o sensibili dei soggetti impattati dagli eventi.
__Gli eventi sono mantenuti per un massimo di 7 giorni dopo i quali sono automaticamente cancellati anche se non sono stati prelevati dallo stream, e sarà possibile ottenere lo stato della notifica solo attraverso il servizio [getNotificationRequestStatus](https://petstore.swagger.io/?url=https://raw.githubusercontent.com/pagopa/pn-delivery/develop/docs/openapi/api-external-b2b-pa-v1.yaml#/SenderReadB2B/retrieveNotificationRequestStatus)__

Le FAQ possono essere consultate al seguente link: https://docs.pagopa.it/v1.0-1/

contact: email: pn-supporto-enti@pagopa.it license: name: Licenza di PN url: https://notifichedigitali.pagopa.it/pubbliche-amministrazioni/index.html servers: - url: https://api.notifichedigitali.it description: Ambiente di produzione - url: https://api.uat.notifichedigitali.it description: Ambiente di collaudo security: - ApiKeyAuth: [] tags: - name: HealthCheck description: >- Invocazioni per sapere lo stato di Piattaforma Notifiche # il servizio è ancora in fase di sviluppo - name: NewNotification description: >- Invocazioni per effettuare il pre-caricamento dei documenti della notifica e inviare notifiche - name: SenderReadB2B description: >- Invocazioni utilizzabili dai mittenti per verificare lo stato delle richieste di notifica inviate e delle notifiche accettate. - name: NotificationPrice description: Invocazioni per determinare il costo della notifica per il destinatario. - name: LegalFacts description: Invocazioni per effettuare il download degli atti opponibili a terzi - name: PaymentEvents description: Invocazioni per comunicare eventi di pagamento dalla PA - name: NotificationCancellation description: Annullamento di una notifica - name: Streams description: Gestione degli stream di eventi che PN mette a disposizione - name: Events description: Metodi per la lettura degli eventi dagli stream paths: /status: get: summary: status path description: status path per verificare lo stato di Piattaforma Notifiche tags: - HealthCheck operationId: status responses: '200': description: Ok content: application/problem+json: schema: $ref: '#/components/schemas/PnStatusResponse' example: functionalities: - NOTIFICATION_CREATE - NOTIFICATION_VISUALIZATION - NOTIFICATION_WORKFLOW openIncidents: [] '400': description: Bad request content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '500': description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/PnStatusResponse' example: functionalities: - NOTIFICATION_CREATE - NOTIFICATION_VISUALIZATION - NOTIFICATION_WORKFLOW openIncidents: - functionality: NOTIFICATION_CREATE status: KO startDate: '2019-08-24T14:15:22Z' /delivery/attachments/preload: post: summary: Richiesta di pre-caricamento dei documenti della notifica description: >- Operazione che richiede a Piattaforma Notifica le informazioni e le autorizzazioni necessarie a precaricare uno o più file da allegare a una notifica.
tags: - NewNotification operationId: presignedUploadRequest requestBody: content: application/json: schema: type: array items: $ref: '#/components/schemas/PreLoadRequest' minItems: 1 maxItems: 15 required: true responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/PreLoadResponse' '400': description: Bad request content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '500': description: Internal error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' /delivery/v2.1/requests: post: summary: Richiesta invio notifica description: >- Operazione utilizzata dalla Pubblica Amministrazione per richiedere l'invio di una notifica. La restituzione di uno stato HTTP 202 significa solo che la richiesta è sintatticamente valida, non che la richiesta sia stata validata ed accettata.
Per conoscere lo stato di accettazione della richiesta di notifica bisogna utilizzare l'operazione _getNotificationRequestStatus_ oppure utilizzare la modalità push prevista dai webhook.
tags: - NewNotification operationId: sendNewNotificationV21 requestBody: content: application/json: schema: $ref: '#/components/schemas/NewNotificationRequestV21' required: true responses: '202': description: Accepted content: application/json: schema: $ref: '#/components/schemas/NewNotificationResponse' '400': description: Bad request content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '409': description: Conflict content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '500': description: Internal error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' get: operationId: retrieveNotificationRequestStatusV21 tags: - SenderReadB2B summary: Verifica accettazione richiesta notifica description: >- Questa operazione serve per verificare se la richiesta di notifica è stata accettata e ottenere lo IUN associato a tale richiesta.
Bisogna specificare il parametro _requestId_ oppure la coppia costituita dai parametri _paProtocolNumber_ e _idempotenceToken_.
parameters: - $ref: '#/components/parameters/notificationRequestId' - $ref: '#/components/parameters/paProtocolNumber' - $ref: '#/components/parameters/idempotenceToken' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/NewNotificationRequestStatusResponseV21' '400': description: Bad request content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '404': description: Not found content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '500': description: Internal error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' /delivery/v2.1/notifications/sent/{iun}: get: summary: 'Mittente: lettura dettagli notifica versione 2' description: >- Questa operazione permette di leggere tutti i dettagli di una notifica accettata.
tags: - SenderReadB2B operationId: retrieveSentNotificationV21 parameters: - $ref: '#/components/parameters/pathIun' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/FullSentNotificationV21' '400': description: Bad request content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '500': description: Internal error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' /delivery/notifications/sent/{iun}/attachments/documents/{docIdx}: get: description: Download documento notificato summary: Download documento notificato tags: - SenderReadB2B operationId: retrieveSentNotificationDocument parameters: - $ref: '#/components/parameters/pathIun' - $ref: '#/components/parameters/pathDocumentIdx' responses: '200': description: OK content: application/json: schema: $ref: >- #/components/schemas/NotificationAttachmentDownloadMetadataResponse '400': description: Bad request content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '404': description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '500': description: Internal error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' /delivery/notifications/sent/{iun}/attachments/payment/{recipientIdx}/{attachmentName}: get: description: Download allegato per pagamento summary: Download allegato per pagamento tags: - SenderReadB2B operationId: retrieveSentNotificationAttachment parameters: - $ref: '#/components/parameters/pathIun' - $ref: '#/components/parameters/pathRecipientIdx' - $ref: '#/components/parameters/pathAttachmentName' - $ref: '#/components/parameters/attachmentIdx' responses: '200': description: OK content: application/json: schema: $ref: >- #/components/schemas/NotificationAttachmentDownloadMetadataResponse '400': description: Bad request content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '404': description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '500': description: Internal error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' /delivery/price/{paTaxId}/{noticeCode}: get: operationId: retrieveNotificationPrice summary: Retrieve notification price and effective date description: |- Usata dalla PA per recuperare il costo di notificazione tramite l'identificativo della posizione debitoria paTaxId e noticeCode. tags: - NotificationPrice parameters: - name: paTaxId description: Payment PA fiscal code in: path required: true example: '77777777777' schema: $ref: '#/components/schemas/paTaxId' - name: noticeCode description: Payment notice number numero avviso in: path required: true example: '302000100000019421' schema: $ref: '#/components/schemas/noticeCode' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/NotificationPriceResponse' '400': description: Invalid input content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '404': description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '500': description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' /delivery/events/payment/pagopa: post: operationId: paymentEventsRequestPagoPa description: >- Questa API è a disposizione della Pubblica Amministrazione per inviare eventi di chiusura di una o più posizioni debitorie di tipo PagoPA.
tags: - PaymentEvents requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PaymentEventsRequestPagoPa' responses: '204': description: OK '400': description: Invalid input content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '404': description: Not found content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '500': description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' /delivery/events/payment/f24: post: deprecated: true operationId: paymentEventsRequestF24 description: >- Questa API è a disposizione della Pubblica Amministrazione per inviare eventi di chiusura di una o più posizioni debitorie di tipo F24.
tags: - PaymentEvents requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PaymentEventsRequestF24' responses: '204': description: OK '400': description: Invalid input content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '404': description: Not found content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '500': description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' /delivery/requests: post: deprecated: true summary: Richiesta invio notifica description: >- Operazione utilizzata dalla Pubblica Amministrazione per richiedere l'invio di una notifica. La restituzione di uno stato HTTP 202 significa solo che la richiesta è sintatticamente valida, non che la richiesta sia stata validata ed accettata.
Per conoscere lo stato di accettazione della richiesta di notifica bisogna utilizzare l'operazione _getNotificationRequestStatus_ oppure utilizzare la modalità push prevista dai webhook.
tags: - NewNotification operationId: sendNewNotification x-pagopa-lambda-name: pn-delivery-versioning-v1v21-sendnewnotification-lambda:live x-pagopa-lambda-account: core requestBody: content: application/json: schema: $ref: '#/components/schemas/NewNotificationRequest' required: true responses: '202': description: Accepted content: application/json: schema: $ref: '#/components/schemas/NewNotificationResponse' '400': description: Bad request content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '409': description: Conflict content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '500': description: Internal error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' get: deprecated: true operationId: retrieveNotificationRequestStatus x-pagopa-lambda-name: pn-delivery-versioning-v1v21-getnotificationrequeststatus-lambda:live x-pagopa-lambda-account: core tags: - SenderReadB2B summary: Verifica accettazione richiesta notifica description: >- Questa operazione serve per verificare se la richiesta di notifica è stata accettata e ottenere lo IUN associato a tale richiesta.
Bisogna specificare il parametro _requestId_ oppure la coppia costituita dai parametri _paProtocolNumber_ e _idempotenceToken_.
parameters: - $ref: '#/components/parameters/notificationRequestId' - $ref: '#/components/parameters/paProtocolNumber' - $ref: '#/components/parameters/idempotenceToken' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/NewNotificationRequestStatusResponse' '400': description: Bad request content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '404': description: Not found content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '500': description: Internal error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' /delivery/notifications/sent/{iun}: get: deprecated: true summary: 'Mittente: lettura dettagli notifica' description: >- Questa operazione permette di leggere tutti i dettagli di una notifica accettata.
tags: - SenderReadB2B operationId: retrieveSentNotification x-pagopa-lambda-name: pn-delivery-versioning-v1v2-getnotification-lambda:live x-pagopa-lambda-account: core parameters: - $ref: '#/components/parameters/pathIun' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/FullSentNotification' '400': description: Bad request content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '500': description: Internal error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' /delivery/v2.0/notifications/sent/{iun}: get: deprecated: true summary: 'Mittente: lettura dettagli notifica versione 2' description: >- Questa operazione permette di leggere tutti i dettagli di una notifica accettata.
tags: - SenderReadB2B operationId: retrieveSentNotificationV20 parameters: - $ref: '#/components/parameters/pathIun' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/FullSentNotificationV20' '400': description: Bad request content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '500': description: Internal error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' /delivery-push/v2.0/notifications/cancel/{iun}: put: summary: Annullamento notifica description: >- Permette l'annullamento di una notifica restituendo una presa in carico, il processo di annullamento si completa poi in maniera asincrona tags: - NotificationCancellation operationId: notificationCancellation parameters: - $ref: '#/components/parameters/pathIun' responses: '202': description: Accepted - Richiesta annullamento presa in carico content: application/json: schema: $ref: '#/components/schemas/RequestStatus' '400': description: Bad request content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '404': description: Not found content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '500': description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' /delivery-push/{iun}/legal-facts: get: summary: Elenco atti opponibili a terzi description: >- Elenca le informazione di categorizzazione di tutti gli atti opponibili a terzi registrati durante il processo di notifica.
L'unico valore ammesso per il parametro _x-pagopa-pn-cx-type_ è `PA` tags: - LegalFacts operationId: retrieveNotificationLegalFacts parameters: - $ref: '#/components/parameters/pathIun' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/LegalFactList' '400': description: Invalid input content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '404': description: Not found content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '500': description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' /delivery-push/{iun}/legal-facts/{legalFactType}/{legalFactId}: get: summary: Singolo atto opponibile a terzi description: >- Permette di scaricare un atto opponibile a terzi
L'unico valore ammesso per il parametro _x-pagopa-pn-cx-type_ è `PA` tags: - LegalFacts operationId: retrieveLegalFact parameters: - $ref: '#/components/parameters/pathIun' - $ref: '#/components/parameters/pathLegalFactType' - $ref: '#/components/parameters/pathLegalFactId' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/LegalFactDownloadMetadataResponse' '400': description: Invalid input content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '404': description: Not found content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '500': description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' /delivery-push/{iun}/download/legal-facts/{legalFactId}: get: summary: Singolo atto opponibile a terzi description: >- Permette di scaricare un atto opponibile a terzi
L'unico valore ammesso per il parametro _x-pagopa-pn-cx-type_ è `PA` tags: - LegalFacts operationId: downloadLegalFactById parameters: - $ref: '#/components/parameters/pathIun' - $ref: '#/components/parameters/pathLegalFactId' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/LegalFactDownloadMetadataResponse' '400': description: Invalid input content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '404': description: Not found content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '500': description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' /delivery-progresses/streams: post: summary: Crea nuovo stream di eventi description: >- Viene richiesta la creazione di un flusso di eventi specificando se gli eventi saranno relativi ai cambi di stato o agli eventi di timeline.
In risposta, Piattaforma Notifiche, comunicherà un identificativo dello stream e il timestamp di effettiva attivazione del flusso, tipicamente pochi secondi dopo che è stata invocata l'operazione. tags: - Streams operationId: createEventStream requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/StreamCreationRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StreamMetadataResponse' '400': description: Invalid input content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '500': description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' get: summary: Elenca stream di eventi description: Elenca gli stream di eventi tags: - Streams operationId: listEventStreams responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StreamListResponse' '400': description: Invalid input content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '500': description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' /delivery-progresses/streams/{streamId}: parameters: - $ref: '#/components/parameters/pathStreamId' get: summary: Leggi metadati dello stream description: Permette di leggere le configurazioni di uno stream di eventi. tags: - Streams operationId: retrieveEventStream responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StreamMetadataResponse' '400': description: Invalid input content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '500': description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' put: summary: Update Stream metadata description: >- Permette di cambiare le configurazioni dei filtri associati a uno stream di eventi tags: - Streams operationId: updateEventStream requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/StreamCreationRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StreamMetadataResponse' '400': description: Invalid input content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '500': description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' delete: summary: Remove Event Stream description: >- Elimina uno steam di eventi: elimina sia le configurazioni sia tutti gli eventi associati allo stream e non ancora consumati. tags: - Streams operationId: removeEventStream responses: '204': description: OK '400': description: Bad request content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '500': description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' /delivery-progresses/streams/{streamId}/events: get: summary: Leggi progressi notifiche description: >- Permette di leggere gli eventi presenti nello stream di aggiornamenti e indica che la P.A. ha ricevuto e memorizzato l'evento identificato dal parametro _lastEventId_ e tutti gli eventi precedenti. Tali eventi potranno essere cancellati dallo stream. tags: - Events operationId: consumeEventStream parameters: - $ref: '#/components/parameters/pathStreamId' - $ref: '#/components/parameters/queryLastEventId' responses: '200': description: OK headers: retry-after: schema: type: integer format: int32 description: >- Numero di millisecondi di attesa prima di effettuare una nuova lettura di eventi.
Sarà valorizzato a zero se ci sono eventi in coda che non sono stati forniti per raggiunta dimensione massima della risposta.
Sarà maggiore di zero se gli eventi in coda sono stati tutti inviati. content: application/json: schema: $ref: '#/components/schemas/ProgressResponse' '400': description: Invalid input content: application/problem+json: schema: $ref: '#/components/schemas/Problem' '429': description: Too Many Requests headers: retry-after: schema: type: integer format: int32 description: >- Numero di millisecondi di attesa prima di effettuare una nuova lettura di eventi. '500': description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' components: parameters: notificationRequestId: in: query required: false name: notificationRequestId description: identificativo della richiesta di notifica schema: type: string maxLength: 36 pattern: ^[A-Za-z0-9+/=]{36}$ paProtocolNumber: name: paProtocolNumber in: query required: false description: >- Numero di protocollo associato alla notifica, può essere riutilizzato per rettifiche. schema: type: string pattern: ^.*$ maxLength: 256 idempotenceToken: name: idempotenceToken description: >- token usato per disambiguare "richieste di notificazione" effettuate con lo stesso numero di protocollo. in: query required: false schema: type: string pattern: ^[ -~]*$ maxLength: 256 pathDocumentIdx: name: docIdx description: indice del documento nella lista partendo da 0. in: path required: true schema: type: integer format: int32 pathRecipientIdx: name: recipientIdx description: indice del destinatario nella lista partendo da 0. in: path required: true schema: type: integer format: int32 pathAttachmentName: name: attachmentName description: >- Tipologia del pagamento allegato alla notifica. Valori possibili PAGOPA|F24 in: path required: true schema: type: string minLength: 3 maxLength: 6 pattern: PAGOPA|F24 attachmentIdx: in: query name: attachmentIdx description: indice del documento di pagamento partendo da 0 required: false schema: type: integer format: int32 pathLegalFactType: description: Categoria dell'atto opponibile a terzi name: legalFactType in: path required: true schema: $ref: '#/components/schemas/LegalFactCategory' pathLegalFactId: description: Identificativo dell'atto opponibile a terzi name: legalFactId in: path required: true schema: type: string pattern: ^[ -~]*$ maxLength: 1024 pathIun: description: Identificativo Univoco Notifica name: iun in: path required: true schema: type: string minLength: 25 maxLength: 25 pattern: ^[A-Z]{4}-[A-Z]{4}-[A-Z]{4}-[0-9]{6}-[A-Z]{1}-[0-9]{1}$ legalFactsSearchMandateId: name: mandateId in: query required: false description: identificativo della delega, non utilizzato nelle API B2B x-pn-intended-usage: - WEB schema: type: string format: uuid pathDocumentType: description: Categoria documento name: documentType in: path required: true schema: $ref: '#/components/schemas/DocumentCategory' queryDocumentId: description: Identificativo del documento name: documentId in: query required: true schema: type: string pattern: ^(safestorage:\/\/)?[A-Za-z0-9._-]+$ maxLength: 512 queryLastEventId: description: >- Identificativo dell'ultimo evento memorizzato dal chiamante, se non passato si intende dal primo evento presente nello stream. Numero in una stringa di 38 caratteri con padding iniziale composto da '0'. name: lastEventId in: query required: false schema: type: string minLength: 38 maxLength: 38 pattern: ^0\d{37}$ pathStreamId: description: Identificativo dello stream di eventi name: streamId in: path required: true schema: type: string format: uuid schemas: PnStatusResponse: title: Stato attuale di PN description: >- Elenco delle funzionalità della piattaforma ed elenco dei disservizi noti e attivi al momento della richiesta. I disservizi (_openIncidents_) segnalati sono al più uno per funzionalità; gli attributi _endDate_ e _legalFactId_ non saranno valorizzati. type: object required: - functionalities - openIncidents properties: status: description: Bad Request example: 400 exclusiveMaximum: true format: int32 maximum: 600 minimum: 100 type: integer title: description: The server cannot process the request example: Bad Request maxLength: 64 pattern: ^[ -~]{0,64}$ type: string detail: description: The server cannot process the request example: Bad Request maxLength: 4096 pattern: ^.{0,4096}$ type: string functionalities: title: elenco funzionalità di PN description: >- Un array che comprende tutti i possibili valori dell'enum _PnFunctionality_ type: array items: $ref: '#/components/schemas/PnFunctionality' openIncidents: title: elenco disservizi correnti description: Al più uno per funzionalità type: array items: $ref: '#/components/schemas/PnDowntimeEntry' PreLoadRequest: title: Richiesta di precaricamento di un File type: object required: - sha256 properties: preloadIdx: title: Id della richiesta di precaricamento di un file description: >- Identificativo univoco all'interno della request HTTP, serve per correlare la risposta. Stringa alfanumerica con caratteri utilizzabili in un nome file. type: string minLength: 1 maxLength: 512 pattern: ^[a-zA-Z0-9._-]{1,512}$ contentType: title: MIME type del file che verrà caricato description: >- Il MIME type dell'allegato che dovrà essere caricato. Attualmente sono supportati - application/pdf - application/json type: string minLength: 15 maxLength: 16 pattern: ^application\/(pdf|json)$ sha256: title: checksum sha256 del file che verrà caricato description: >- checksum sha256, codificato in base 64, del contenuto binario del file che verrà caricato type: string example: jezIVxlG1M1woCSUngM6KipUN3/p8cG5RMIPnuEanlE= minLength: 44 maxLength: 44 pattern: ^[A-Za-z0-9+\/]{43}=|[A-Za-z0-9+\/]{44}$ PreLoadResponse: title: Informazioni per il caricamento file description: >- Per ogni richiesta che è stata fatta viene fornito un presigned URL e le informazioni per usarlo. type: object properties: preloadIdx: description: >- per correlazione con la richiesta. Stringa alfanumerica con caratteri utilizzabili in un file. type: string minLength: 1 maxLength: 512 pattern: ^[a-zA-Z0-9._-]{1,512}$ secret: description: >- Token aggiuntivo per far si che sia necessario intercettare anche gli header e non solo l'URL di upload del contenuto del documento. example: AZ23RF12 type: string httpMethod: description: >- Indica se per l'upload del contenuto file bisogna utilizzare il metodo PUT o POST type: string example: PUT enum: - POST - PUT url: description: URL a cui effettuare l'upload del contenuto del documento. type: string example: https://preloadpn.aws.amazon....... key: description: >- la chiave restituita sarà globalmente unica e andrà utilizzata nella richiesta di notifica. example: PN_NOTIFICATION_ATTACHMENTS-0001-301W-B9CB-9U72-WIKD type: string NotificationPriceResponse: title: Notification price Response description: Notification price and effective date type: object properties: iun: $ref: '#/components/schemas/IUN' amount: description: amount in euro cents type: integer format: int32 refinementDate: description: >- data di perfezionamento per decorrenza termini localizzata espressa alla mezzanotte del giorno in cui si verifica l'evento type: string format: date-time notificationViewDate: description: >- data di perfezionamento per presa visione espressa alla mezzanotte del giorno in cui si verifica l'evento type: string format: date-time NewNotificationResponse: title: Identificativi della richiesta di notifica description: >- Contiene le informazioni per identificare una richiesta di invio notifica che non è ancora stata accettata da Piattaforma notifiche. type: object required: - notificationRequestId - paProtocolNumber properties: notificationRequestId: type: string description: >- identificativo univoco di una richiesta di invio notifica, non è lo IUN maxLength: 36 pattern: ^[A-Za-z0-9+/=]{36}$ paProtocolNumber: type: string description: Identificativo inviato dalla pubblica amministrazione idempotenceToken: description: >- Ripetizione del token usato per disambiguare "richieste di notificazione" effettuate con lo stesso numero di protocollo (campo _paProtocolNumber_). type: string NewNotificationRequestStatusResponseV21: allOf: - $ref: '#/components/schemas/NewNotificationRequestV21' - type: object required: - notificationRequestId - notificationRequestStatus properties: notificationRequestId: description: >- identificativo univoco di una richiesta di invio notifica, non è lo IUN type: string notificationRequestStatus: description: >- - __WAITING__: in attesa di essere valutata - __ACCEPTED__: richiesta di notifica accettata, lo IUN è valorizzato - __REFUSED__: richiesta di notifica rifiutata, è valorizzato il campo _errors_ type: string retryAfter: type: integer format: int32 description: >- Numero di secondi da attendere prima di effettuare una nuova richiesta per la stessa entità; valorizzato quando lo status è __WAITING__. iun: $ref: '#/components/schemas/IUN' errors: description: >- Elenco degli errori che hanno causato il rifiuto della richiesta di notifica type: array items: $ref: '#/components/schemas/ProblemError' Problem: properties: type: description: URI reference of type definition type: string status: description: >- The HTTP status code generated by the origin server for this occurrence of the problem. type: integer format: int32 example: 503 maximum: 600 minimum: 100 exclusiveMaximum: true title: description: >- A short, summary of the problem type. Written in english and readable example: Service Unavailable maxLength: 64 pattern: ^[ -~]{0,64}$ type: string detail: description: A human readable explanation of the problem. example: Request took too long to complete. maxLength: 4096 pattern: ^.{0,4096}$ type: string traceId: description: Internal support identifier associated to error example: 123e4567-e89b-12d3-a456-426614174000 type: string timestamp: description: date and time referred to UTC example: '2022-07-27T12:22:33.444Z' type: string format: date-time errors: type: array minItems: 1 items: $ref: '#/components/schemas/ProblemError' required: - status - errors ProblemError: properties: code: description: Internal code of the error, in human-readable format example: >- PN_PARAMETER_TOO_LONG | PN_PARAMETER_TOO_SHORT | PN_DUPLICATE_ENTRY | etc... type: string element: description: Parameter or request body field name for validation error example: body.order.item[2].quantity type: string detail: description: >- A human readable explanation specific to this occurrence of the problem. example: Parameter not valid maxLength: 1024 type: string required: - code FullSentNotificationV21: description: >- Le informazioni riguardanti una notifica (richiesta di notifica accettata) e il processo di inoltro della notifica verso il cittadino. allOf: - $ref: '#/components/schemas/SentNotificationV21' - type: object required: - notificationStatus - notificationStatusHistory - timeline properties: notificationStatus: $ref: '#/components/schemas/NotificationStatus' notificationStatusHistory: $ref: '#/components/schemas/NotificationStatusHistory' timeline: description: >- elenco dettagliato di tutto ciò che è accaduto durrante il processo di notifica type: array items: $ref: '#/components/schemas/TimelineElementV20' PaymentEventsRequestPagoPa: title: Invio eventi di pagamento da PA a PN description: >- Richiesta contenente un array di eventi di pagamento di tipo PagoPA di cui una Pubblica Amministrazione deve avvisare Piattaforma Notifiche. type: object required: - events properties: events: description: Elenco degli eventi di pagamento type: array items: $ref: '#/components/schemas/PaymentEventPagoPa' PaymentEventsRequestF24: title: Invio eventi di pagamento da PA a PN description: >- Richiesta contenente un array di eventi di pagamento di tipo F24 di cui una Pubblica Amministrazione deve avvisare Piattaforma Notifiche. type: object required: - events properties: events: description: Elenco degli eventi di pagamento type: array items: $ref: '#/components/schemas/PaymentEventF24' PaymentEventPagoPa: title: Evento di pagamento PagoPa description: |- Comprende:
- _noticeCode_: "codice avviso pagoPA" di pagamento del sistema pagoPA, usato per pagamento online.
- _creditorTaxId_: codice fiscale dell'ente a cui fa riferimento il "codice avviso pagoPA".
- data e ora del pagamento.
- importo del pagamento in eurocent.
type: object required: - noticeCode - creditorTaxId - paymentDate - amount properties: noticeCode: $ref: '#/components/schemas/noticeCode' creditorTaxId: $ref: '#/components/schemas/paTaxId' paymentDate: type: string pattern: >- ^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(\.[0-9]+)?(Z|([+\-][0-9]{2}):([0-9]{2}))$ description: data e ora in formato ISO 8601 amount: type: integer format: int32 PaymentEventF24: title: Evento di pagamento F24 description: |- Comprende:
- lo _IUN_ della notifica pagata,
- data e ora del pagamento,
- il codice fiscale del destinatario pagatore,
- la tipologia del destinatario pagatore (PF / PG),
- importo del pagamento in eurocent.
type: object required: - iun - paymentDate - recipientTaxId - recipientType - amount properties: iun: type: string minLength: 25 maxLength: 25 pattern: ^[A-Z]{4}-[A-Z]{4}-[A-Z]{4}-[0-9]{6}-[A-Z]{1}-[0-9]{1}$ paymentDate: type: string format: date-time recipientTaxId: $ref: '#/components/schemas/TaxId' recipientType: type: string minLength: 2 maxLength: 2 pattern: PF|PG amount: type: integer format: int32 TimelineElementV20: type: object additionalProperties: false properties: elementId: type: string description: >- Identificativo dell'elemento di timeline: insieme allo IUN della notifica definisce in maniera univoca l'elemento di timeline timestamp: type: string description: >- Momento in cui avviene l'evento descritto in questo elemento di timeline format: date-time legalFactsIds: type: array items: $ref: '#/components/schemas/LegalFactsId' description: >- Chiavi dei documenti che provano l'effettivo accadimento dell'evento descritto in timeline. Questo elemento category: $ref: '#/components/schemas/TimelineElementCategoryV20' details: $ref: '#/components/schemas/TimelineElementDetailsV20' NotificationStatus: type: string description: | stato di avanzamento del processo di notifica: * `IN_VALIDATION` - notifica depositata in attesa di validazione * `ACCEPTED` - L'ente ha depositato la notifica con successo * `REFUSED` - Notifica rifiutata a seguito della validazione * `DELIVERING` - L'invio della notifica è in corso * `DELIVERED` - La notifica è stata consegnata a tutti i destinatari * `VIEWED` - Il destinatario ha letto la notifica entro il termine stabilito * `EFFECTIVE_DATE` - Il destinatario non ha letto la notifica entro il termine stabilito * `PAID` - Uno dei destinatari ha pagato la notifica * `UNREACHABLE` - Il destinatario non è reperibile * `CANCELLED` - L'ente ha annullato l'invio della notifica enum: - IN_VALIDATION - ACCEPTED - REFUSED - DELIVERING - DELIVERED - VIEWED - EFFECTIVE_DATE - PAID - UNREACHABLE - CANCELLED NotificationStatusHistory: description: elenco degli avanzamenti effettuati dal processo di notifica type: array items: $ref: '#/components/schemas/NotificationStatusHistoryElement' LegalFactDownloadMetadataResponse: title: Url e metadati per il download di un allegato di una notifica description: |- I due campi più importanti sono __url__ e __retryAfter__.
- __url__ è presente se il file è pronto per essere scaricato ed indica l'url a cui fare GET. - __retryAfter__ indica che il file non è stato archiviato e bisognerà aspettare un numero di secondi non inferiore a quanto indicato dal campo _retryAfter_.
type: object required: - filename - contentLength properties: filename: type: string contentLength: type: number format: decimal32 example: 54092 description: dimensione, in byte, del contenuto. url: type: string description: >- URL preautorizzato a cui effettuare una richiesta GET per ottenere il contenuto del documento. Presente solo se il documento è pronto per il download. retryAfter: type: number format: decimal32 description: >- Stima del numero di secondi da aspettare prima che il contenuto del documento sia scaricabile. F24Metadata: type: object description: >- è richiesto uno e uno solo tra le propeties f24Standard, f24Simplified, f24Excise, f24Elid properties: f24Standard: nullable: true allOf: - $ref: '#/components/schemas/F24Standard' f24Simplified: nullable: true allOf: - $ref: '#/components/schemas/F24Simplified' f24Excise: nullable: true allOf: - $ref: '#/components/schemas/F24Excise' f24Elid: nullable: true allOf: - $ref: '#/components/schemas/F24Elid' RequestStatus: description: Response to cancellation async call type: object properties: status: description: | Cancellation request status: - OK type: string details: type: array maxItems: 9999 items: $ref: '#/components/schemas/StatusDetail' required: - status NewNotificationRequestStatusResponse: allOf: - $ref: '#/components/schemas/NewNotificationRequest' - type: object required: - notificationRequestId - notificationRequestStatus properties: notificationRequestId: description: >- identificativo univoco di una richiesta di invio notifica, non è lo IUN type: string notificationRequestStatus: description: >- - __WAITING__: in attesa di essere valutata - __ACCEPTED__: richiesta di notifica accettata, lo IUN è valorizzato - __REFUSED__: richiesta di notifica rifiutata, è valorizzato il campo _errors_ type: string retryAfter: type: integer format: int32 description: >- Numero di secondi da attendere prima di effettuare una nuova richiesta per la stessa entità; valorizzato quando lo status è __WAITING__. iun: $ref: '#/components/schemas/IUN' errors: description: >- Elenco degli errori che hanno causato il rifiuto della richiesta di notifica type: array items: $ref: '#/components/schemas/ProblemError' FullSentNotification: description: >- Le informazioni riguardanti una notifica (richiesta di notifica accettata) e il processo di inoltro della notifica verso il cittadino. allOf: - $ref: '#/components/schemas/SentNotification' - type: object required: - notificationStatus - notificationStatusHistory - timeline properties: notificationStatus: $ref: '#/components/schemas/NotificationStatus' notificationStatusHistory: $ref: '#/components/schemas/NotificationStatusHistory' timeline: description: >- elenco dettagliato di tutto ciò che è accaduto durrante il processo di notifica type: array items: $ref: '#/components/schemas/TimelineElement' FullSentNotificationV20: description: >- Le informazioni riguardanti una notifica (richiesta di notifica accettata) e il processo di inoltro della notifica verso il cittadino. allOf: - $ref: '#/components/schemas/SentNotification' - type: object required: - notificationStatus - notificationStatusHistory - timeline properties: notificationStatus: $ref: '#/components/schemas/NotificationStatus' notificationStatusHistory: $ref: '#/components/schemas/NotificationStatusHistory' timeline: description: >- elenco dettagliato di tutto ciò che è accaduto durrante il processo di notifica type: array items: $ref: '#/components/schemas/TimelineElementV20' TimelineElement: type: object additionalProperties: false properties: elementId: type: string description: >- Identificativo dell'elemento di timeline: insieme allo IUN della notifica definisce in maniera univoca l'elemento di timeline timestamp: type: string description: >- Momento in cui avviene l'evento descritto in questo elemento di timeline format: date-time legalFactsIds: type: array items: $ref: '#/components/schemas/LegalFactsId' description: >- Chiavi dei documenti che provano l'effettivo accadimento dell'evento descritto in timeline. Questo elemento category: $ref: '#/components/schemas/TimelineElementCategory' details: $ref: '#/components/schemas/TimelineElementDetails' PnFunctionality: title: Funzionalità di PN description: >- - __NOTIFICATION_CREATE__: la possibilità di creare nuove notifiche. - __NOTIFICATION_VISUALIZATION__: la possibilità di visualizzare le notifiche e scaricare gli atti. - __NOTIFICATION_WORKFLOW__: l'avanzamento del processo di notifica. type: string enum: - NOTIFICATION_CREATE - NOTIFICATION_VISUALIZATION - NOTIFICATION_WORKFLOW x-enum-varnames: - NOTIFICATION_CREATE - NOTIFICATION_VISUALIZATION - NOTIFICATION_WORKFLOW PnFunctionalityStatus: type: string enum: - KO - OK PnDowntimeEntry: title: Dati relativi ad un disservizio di PN. type: object required: - functionality - status - startDate properties: functionality: $ref: '#/components/schemas/PnFunctionality' status: $ref: '#/components/schemas/PnFunctionalityStatus' startDate: title: data inizio disservizio type: string format: date-time endDate: title: data fine disservizio description: >- se il disservizio è ancora attivo questo campo sarà assente o con valore _null_ type: string format: date-time legalFactId: title: id dell'atto opponibile a terzi description: >- Se assente o valorizzato _null_ indica che l'atto opponibile a terzi non è ancora disponibile. Questo avviene per i disservizi ancora aperti e per i disservizi terminati da pochi minuti.
Questo valore è da utilizzare con l'API _getLegalFact_ di questo stesso servizio. type: string fileAvailable: type: boolean TaxId: description: C.F. persona fisica o persona giuridica type: string minLength: 11 maxLength: 16 pattern: >- ^([A-Z]{6}[0-9LMNPQRSTUV]{2}[A-Z]{1}[0-9LMNPQRSTUV]{2}[A-Z]{1}[0-9LMNPQRSTUV]{3}[A-Z]{1})|([0-9]{11})$ Denomination: description: Denominazione ente o persona fisica / ragione sociale type: string minLength: 1 maxLength: 80 pattern: ^.*$ NotificationDigitalAddress: description: Indirizzo di invio della notifica required: - address - type type: object properties: type: type: string description: tipo di indirizzo PEC, REM, SERCQ, ... enum: - PEC address: type: string example: account@domain.it description: >- Indirizzo PEC o REM che il mittente della notifica intende utilizzare per raggiungere il destinatario. pattern: >- ^([a-zA-Z0-9]+(?:[.\-_][a-zA-Z0-9]+){0,10}@[a-zA-Z0-9]+(?:[.-][a-zA-Z0-9]+){0,10}(?:\.[a-zA-Z0-9]{2,10}))$ maxLength: 320 NotificationPhysicalAddress: description: Indirizzo fisico type: object required: - address - municipality properties: at: type: string description: Campo "presso" dell'indirizzo pattern: ^.*$ maxLength: 256 address: type: string description: Indirizzo del domicilio fisico pattern: ^.*$ minLength: 2 maxLength: 1024 addressDetails: type: string description: Seconda riga dell'indirizzo fisico pattern: ^.*$ maxLength: 1024 zip: type: string description: >- Codice di avviamento postale. In caso di invio estero diventa facoltativo minLength: 0 maxLength: 15 pattern: ^(\w|\ |\-)*$ municipality: type: string description: Comune pattern: ^.*$ minLength: 2 maxLength: 256 municipalityDetails: type: string description: Frazione o località pattern: ^.*$ maxLength: 256 province: type: string description: Provincia pattern: ^.*$ maxLength: 256 foreignState: type: string description: Denominazione paese estero pattern: ^.*$ maxLength: 256 noticeCode: description: Payment notice number numero avviso example: '302000100000019421' type: string maxLength: 18 minLength: 18 pattern: ^\d+$ paTaxId: description: Payment PA fiscal code example: '77777777777' type: string maxLength: 11 minLength: 11 pattern: ^\d+$ NotificationAttachmentDigests: description: Codici per la verifica del corretto caricamento di un allegato type: object required: - sha256 properties: sha256: type: string description: Digest "sha256" della codifica binaria dell'allegato in base64 example: jezIVxlG1M1woCSUngM6KipUN3/p8cG5RMIPnuEanlE= minLength: 44 maxLength: 44 pattern: ^[A-Za-z0-9+\/]{43}=|[A-Za-z0-9+\/]{44}$ NotificationAttachmentBodyRef: description: Riferimento all'allegato precaricato required: - key - versionToken type: object properties: key: type: string description: Chiave in cui è stato salvato l'allegato maxLength: 512 pattern: ^(safestorage:\/\/)?[A-Za-z0-9._-]+$ versionToken: type: string description: >- Token per recuperare l'esatta istanza dell'allegato, che dovrà coincidere con l'__x-amz-version-id__ ottenuto nell'header della response in fase di upload del documento ad esso associato. pattern: ^.*$ maxLength: 256 NotificationAttachment: description: Un allegato della notifica. type: object required: - digests - contentType - ref properties: digests: $ref: '#/components/schemas/NotificationAttachmentDigests' contentType: type: string description: tipo di contenuto dell'allegato, supportato application/pdf minLength: 15 maxLength: 15 pattern: ^application\/pdf$ ref: $ref: '#/components/schemas/NotificationAttachmentBodyRef' NotificationPaymentAttachment: description: Un modulo di pagamento allegato alla notifica allOf: - $ref: '#/components/schemas/NotificationAttachment' PagoPaPayment: title: Informazioni per effettuare il pagamento con sistema pagoPA description: >- Informazioni utili per effettuare il pagamento di una notifica, sono associate al destinatario perché le spese di notifica possono differire a seconda del canale di notifica utilizzato.
- _noticeCode_: "codice avviso pagoPA" di pagamento del sistema pagoPA, usato per pagamento online.
- _creditorTaxId_: codice fiscale dell'ente a cui fa riferimento il "codice avviso pagoPA".
- _applyCost_: flag per indicare se l'avviso pagoPA deve contenere i costi di notifica.
- _pagoPaForm_: riferimento al PDF contenete il bollettino pagoPA
type: object required: - noticeCode - creditorTaxId - applyCost properties: noticeCode: $ref: '#/components/schemas/noticeCode' creditorTaxId: $ref: '#/components/schemas/paTaxId' applyCost: type: boolean nullable: false description: >- Flag per indicare se l'avviso pagoPa deve contenere i costi di notifica attachment: $ref: '#/components/schemas/NotificationPaymentAttachment' NotificationMetadataAttachment: description: Un metadato allegato della notifica. type: object required: - digests - contentType - ref properties: digests: $ref: '#/components/schemas/NotificationAttachmentDigests' contentType: type: string description: tipo di contenuto dell'allegato, supportato application/json minLength: 16 maxLength: 16 pattern: ^application\/json$ ref: $ref: '#/components/schemas/NotificationAttachmentBodyRef' F24Payment: title: Informazioni per effettuare il pagamento tramite modello F24 description: >- Informazioni utili per effettuare il pagamento di una notifica, sono associate al destinatario perché le spese di notifica possono differire a seconda del canale di notifica utilizzato.
- _title_: titolo del documento pdf da mostrare all'utente .
- _applyCost_: flag per indicare se il modello F24 deve contenere i costi di notifica.
- _metadataAttachment_: riferimento ai metadati per la generazione del modello F24.
type: object required: - title - applyCost - metadataAttachment properties: title: description: Titolo del documento pdf da mostrare all'utente type: string applyCost: type: boolean nullable: false description: Flag per indicare se il modello F24 deve contere i costi di notifica metadataAttachment: $ref: '#/components/schemas/NotificationMetadataAttachment' NotificationPaymentItem: minProperties: 1 properties: pagoPa: $ref: '#/components/schemas/PagoPaPayment' f24: $ref: '#/components/schemas/F24Payment' NotificationPayments: title: Pagamenti collegati alla notifica per il destinatario description: >- Lista dei pagamenti collegati alla notifica per il destinatario. Possono essere pagamenti rateali o alternativi type: array items: $ref: '#/components/schemas/NotificationPaymentItem' NotificationRecipientV21: description: Informazioni sui destinatari required: - denomination - recipientType - taxId - physicalAddress type: object properties: recipientType: type: string description: >- Tipologia di destinatario: Persona Fisica (PF) o Persona Giuridica (PG) enum: - PF - PG taxId: $ref: '#/components/schemas/TaxId' denomination: $ref: '#/components/schemas/Denomination' digitalDomicile: $ref: '#/components/schemas/NotificationDigitalAddress' physicalAddress: $ref: '#/components/schemas/NotificationPhysicalAddress' payments: $ref: '#/components/schemas/NotificationPayments' NotificationDocument: description: Un documento da notificare allOf: - $ref: '#/components/schemas/NotificationAttachment' - type: object properties: title: type: string description: >- Titolo del documento allegato. Stringa alfanumerica con caratteri utilizzabili in un nome file. minLength: 1 maxLength: 512 pattern: ^.*$ docIdx: type: string description: Indice del documento partendo da 0. maxLength: 3 pattern: ^\d+$ NotificationFeePolicy: type: string description: >- Politica di addebitamento dei costi di notifica.
- _FLAT_RATE_: costo forfettario fisso.
- _DELIVERY_MODE_: costo calcolato in base all'effettivo percorso di notifica.
enum: - FLAT_RATE - DELIVERY_MODE IUN: description: Identificativo Univoco Notifica type: string minLength: 25 maxLength: 25 pattern: ^[A-Z]{4}-[A-Z]{4}-[A-Z]{4}-[0-9]{6}-[A-Z]{1}-[0-9]{1}$ NewNotificationRequestV21: description: I campi utilizzati per la creazione di una nuova Notifica. type: object required: - paProtocolNumber - subject - recipients - documents - physicalCommunicationType - notificationFeePolicy - senderDenomination - senderTaxId properties: idempotenceToken: description: >- Identificativo utilizzabile dal chiamante per disambiguare differenti "richieste di notificazione" effettuate con lo stesso numero di protocollo (campo _paProtocolNumber_). Questo può essere necessario in caso di "richiesta di notifica" rifiutata per errori nei codici di verifica degli allegati. type: string pattern: ^[ -~]*$ maxLength: 256 paProtocolNumber: description: Numero di protocollo che la PA mittente assegna alla notifica stessa type: string pattern: ^.*$ maxLength: 256 subject: type: string description: titolo della notifica maxLength: 134 pattern: ^.*$ abstract: type: string description: descrizione sintetica della notifica pattern: ^.*$ maxLength: 1024 recipients: type: array description: Informazioni sui destinatari items: $ref: '#/components/schemas/NotificationRecipientV21' documents: type: array description: Documenti notificati items: $ref: '#/components/schemas/NotificationDocument' minItems: 1 notificationFeePolicy: $ref: '#/components/schemas/NotificationFeePolicy' cancelledIun: $ref: '#/components/schemas/IUN' physicalCommunicationType: type: string description: Tipologia comunicazione fisica enum: - AR_REGISTERED_LETTER - REGISTERED_LETTER_890 senderDenomination: $ref: '#/components/schemas/Denomination' senderTaxId: $ref: '#/components/schemas/paTaxId' group: type: string description: Gruppo di utenti dell'ente mittente che può visualizzare la notifica pattern: ^[ -~]*$ maxLength: 1024 amount: type: integer format: int32 description: Importo della notifica in eurocent paymentExpirationDate: type: string minLength: 10 maxLength: 10 pattern: ^([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$ description: >- Data di scadenza del pagamento nel formato YYYY-MM-DD riferito all'Italia taxonomyCode: type: string minLength: 7 maxLength: 7 pattern: ^([0-9]{6}[A-Z]{1})$ description: >- Codice tassonomico della notifica basato sulla definizione presente nell'allegato 2 capitolo C del bando [__AVVISO PUBBLICO MISURA 1.4.5 PIATTAFORMA NOTIFICHE DIGITALI__](https://pnrrcomuni.fondazioneifel.it/bandi_public/Bando/325) default: 010101P paFee: type: integer description: Costo espresso in eurocent che la PA imputa per la notifica format: int32 minimum: 0 maximum: 100 pagoPaIntMode: type: string description: >- Modalitá di integrazione pagoPA per l'attualizazione del costo della notifica.
- _NONE_: nessuna attualizzazione.
- _SYNC_: modalitá sincrona.
- _ASYNC_: modalitá asincrona. (non ancora supportata)
enum: - NONE - SYNC - ASYNC SentNotificationV21: description: Le informazioni riguardanti una richiesta di notifica accettata allOf: - $ref: '#/components/schemas/NewNotificationRequestV21' - type: object required: - iun - sentAt properties: senderPaId: type: string description: >- Identificativo (non IPA) della PA mittente che ha eseguito l'onboarding su SelfCare. pattern: ^.*$ maxLength: 256 iun: $ref: '#/components/schemas/IUN' sentAt: type: string description: Momento di ricezione della notifica da parte di PN format: date-time cancelledByIun: $ref: '#/components/schemas/IUN' documentsAvailable: type: boolean description: Indica se i documenti notificati sono ancora disponibili. TimelineElementId: type: string NotificationStatusHistoryElement: description: elenco degli avanzamenti effettuati dal processo di notifica type: object required: - status - activeFrom - relatedTimelineElements properties: status: $ref: '#/components/schemas/NotificationStatus' activeFrom: type: string description: data e ora di raggiungimento dello stato di avanzamento format: date-time relatedTimelineElements: type: array description: Eventi avvenuti nello stato items: $ref: '#/components/schemas/TimelineElementId' LegalFactCategory: title: Tipi di atti opponibili a terzi description: >- Tipi di atti opponibili a terzi che Piattaforma Notifiche mette a disposizione dei suoi utenti. - _SENDER_ACK_: atto di "presa in carico" di una notifica - _DIGITAL_DELIVERY_: ... type: string enum: - SENDER_ACK - DIGITAL_DELIVERY - ANALOG_DELIVERY - RECIPIENT_ACCESS - PEC_RECEIPT - ANALOG_FAILURE_DELIVERY LegalFactsId: description: Chiavi dei documenti generati durante il processo di consegna cartacea type: object required: - key - category properties: key: description: >- Chiave dell'atto opponibile a terzi generato durante il processo di consegna type: string pattern: ^(safestorage:\/\/)?[A-Za-z0-9._-]+$ maxLength: 512 category: $ref: '#/components/schemas/LegalFactCategory' TimelineElementCategoryV20: type: string description: | stato di avanzamento del processo di notifica:` * `SENDER_ACK_CREATION_REQUEST` - Invio della richiesta di creazione dell'atto opponibile a terzi di presa in carico per il mittente a safe storage * `VALIDATE_NORMALIZE_ADDRESSES_REQUEST` - Invio della richiesta di validazione e normalizzazione indirizzi fisici presenti nella richiesta di notifica * `NORMALIZED_ADDRESS` - Salvataggio indirizzi normalizzati * `REQUEST_ACCEPTED` - Richiesta di notifica accettata a seguito dei controlli di validazione * `REQUEST_REFUSED` - Richiesta di notifica rifiutata per fallimento di validazione * `SEND_COURTESY_MESSAGE` - Invio di un messaggio di cortesia * `GET_ADDRESS` - Disponibilità dell’indirizzo specifico (domicilio digitale di piattaforma, domicilio digitale speciale, domicilio digitale generale, indirizzo fisico sulla notifica o sui registri nazionali) * `PUBLIC_REGISTRY_CALL` - Richiesta ai registri pubblici per ottenere domicilio digitale generale o per ottenere indirizzo fisico da ANPR, da registro della imprese, da anagrafe tributaria. * `PUBLIC_REGISTRY_RESPONSE` - Ricevuta la risposta dei registri pubblici * `SCHEDULE_ANALOG_WORKFLOW` - Pianificazione del workflow per invio cartaceo * `SCHEDULE_DIGITAL_WORKFLOW` -Pianificazione del workflow per invio digitale (PEC) del secondo tentativo in caso di fallimento del primo. * `PREPARE_DIGITAL_DOMICILE` - Preparazione per l’invio dell’avviso digitale.Va a valutare la timeline per capire quale sarà il prossimo indirizzo da usare. * `SEND_DIGITAL_DOMICILE` - Invio digitale dell’avviso di notifica * `SEND_DIGITAL_PROGRESS` - Tentativo di Invio PEC ad un determinato indirizzo. * `SEND_DIGITAL_FEEDBACK` - Ottenuto esito ad un invio digitale * `SCHEDULE_REFINEMENT` - Pianificato il perfezionamento per decorrenza termini * `REFINEMENT` - Perfezionamento per decorrenza termini * `DIGITAL_DELIVERY_CREATION_REQUEST` - Invio della richiesta di creazione dell'atto opponibile a terzi di chiusura del workflow digitale a safe storage * `DIGITAL_SUCCESS_WORKFLOW` - Completato con successo il workflow di invio digitale * `DIGITAL_FAILURE_WORKFLOW` - Completato con fallimento il workflow di invio digitale: tutti i tentativi di invio ai domicili digitali sono falliti. * `ANALOG_SUCCESS_WORKFLOW` - Completato con successo il workflow di invio cartaceo * `ANALOG_FAILURE_WORKFLOW` - Completato con fallimento il workflow di invio cartaceo NOTA: se per tutti i destinatari si conclude il workflow con fallimento verrà scatenato l’evento COMPLETELY_UNREACHABLE * `PREPARE_SIMPLE_REGISTERED_LETTER` - Invio richiesta di prepare (preparazione ad invio) raccomandata semplice a paperChannel * `SEND_SIMPLE_REGISTERED_LETTER` - Invio di raccomandata semplice * `SEND_SIMPLE_REGISTERED_LETTER_PROGRESS` - Ricezione informazioni intermedia relative ad una notificazione cartacea semplice * `NOTIFICATION_VIEWED_CREATION_REQUEST` - Invio della richiesta di creazione dell'atto opponibile a terzi di presa visione a safe storage * `NOTIFICATION_VIEWED` - Visualizzazione della notifica (perfeziona la notifica se non già perfezionata per decorrenza termini o da altro destinatario) * `PREPARE_ANALOG_DOMICILE` - Invio richiesta di prepare (preparazione ad invio) cartaceo a paperChannel * `SEND_ANALOG_DOMICILE` - Invio cartaceo dell’avviso di notifica * `SEND_ANALOG_PROGRESS` - Ricezione informazioni intermedia relative ad una notificazione cartacea * `SEND_ANALOG_FEEDBACK` - Ricezione esito dell'invio cartaceo * `COMPLETELY_UNREACHABLE_CREATION_REQUEST` - Invio della richiesta di creazione dell'atto (simile a opponibile a terzi) di completamento con fallimento del workflow di invio cartaceo * `COMPLETELY_UNREACHABLE` - Tutti i destinatari risultano irraggiungibili * `AAR_CREATION_REQUEST` - Invio della richiesta di creazione dell'AAR (Avviso di Avvenuta Ricezione) a safe storage * `AAR_GENERATION` - Generazione dell’AAR (Avviso di Avvenuta Ricezione) * `PAYMENT` - Ricezione pagamento della notifica * `NOT_HANDLED` - Per la sperimentazione l'invio analogico non è previsto, viene inserito tale elemento di timeline * `PROBABLE_SCHEDULING_ANALOG_DATE` - Data probabile di inizio del flusso analogico * `NOTIFICATION_CANCELLATION_REQUEST` - Richiesta di annullamento di una notifica * `NOTIFICATION_CANCELLED` - Notifica annullata * `PREPARE_ANALOG_DOMICILE_FAILURE` - Fallimento della richiesta di prepare (preparazione ad invio) cartaceo a paperChannel enum: - SENDER_ACK_CREATION_REQUEST - VALIDATE_NORMALIZE_ADDRESSES_REQUEST - NORMALIZED_ADDRESS - REQUEST_ACCEPTED - SEND_COURTESY_MESSAGE - GET_ADDRESS - PUBLIC_REGISTRY_CALL - PUBLIC_REGISTRY_RESPONSE - SCHEDULE_ANALOG_WORKFLOW - SCHEDULE_DIGITAL_WORKFLOW - PREPARE_DIGITAL_DOMICILE - SEND_DIGITAL_DOMICILE - SEND_DIGITAL_PROGRESS - SEND_DIGITAL_FEEDBACK - REFINEMENT - SCHEDULE_REFINEMENT - DIGITAL_DELIVERY_CREATION_REQUEST - DIGITAL_SUCCESS_WORKFLOW - DIGITAL_FAILURE_WORKFLOW - ANALOG_SUCCESS_WORKFLOW - ANALOG_FAILURE_WORKFLOW - PREPARE_SIMPLE_REGISTERED_LETTER - SEND_SIMPLE_REGISTERED_LETTER - SEND_SIMPLE_REGISTERED_LETTER_PROGRESS - NOTIFICATION_VIEWED_CREATION_REQUEST - NOTIFICATION_VIEWED - PREPARE_ANALOG_DOMICILE - SEND_ANALOG_DOMICILE - SEND_ANALOG_PROGRESS - SEND_ANALOG_FEEDBACK - PAYMENT - COMPLETELY_UNREACHABLE - COMPLETELY_UNREACHABLE_CREATION_REQUEST - REQUEST_REFUSED - AAR_CREATION_REQUEST - AAR_GENERATION - NOT_HANDLED - PROBABLE_SCHEDULING_ANALOG_DATE - NOTIFICATION_CANCELLATION_REQUEST - NOTIFICATION_CANCELLED - PREPARE_ANALOG_DOMICILE_FAILURE SenderAckCreationRequestDetails: type: object properties: legalFactId: type: string description: >- Identificativo dell'atto opponibile a terzi del quale è stata richiesta la creazione PhysicalAddress: type: object required: - address - municipality properties: at: x-field-extra-annotation: '@lombok.ToString.Exclude' type: string description: Campo "presso" dell'indirizzo address: x-field-extra-annotation: '@lombok.ToString.Exclude' type: string description: Indirizzo del domicilio fisico addressDetails: x-field-extra-annotation: '@lombok.ToString.Exclude' type: string description: Seconda riga dell'indirizzo fisico zip: x-field-extra-annotation: '@lombok.ToString.Exclude' type: string description: >- Codice di avviamento postale. In caso di invio estero diventa facoltativo municipality: x-field-extra-annotation: '@lombok.ToString.Exclude' type: string description: Comune in cui l'indirizzo si trova municipalityDetails: x-field-extra-annotation: '@lombok.ToString.Exclude' type: string description: Frazione o località province: x-field-extra-annotation: '@lombok.ToString.Exclude' type: string description: Provincia in cui si trova l'indirizzo foreignState: x-field-extra-annotation: '@lombok.ToString.Exclude' type: string description: Denominazione paese estero description: Indirizzo fisico scoperto durante fase di consegna NormalizedAddressDetails: type: object required: - recIndex - oldAddress - normalizedAddress properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 oldAddress: $ref: '#/components/schemas/PhysicalAddress' normalizedAddress: $ref: '#/components/schemas/PhysicalAddress' NotificationRequestAcceptedDetails: type: object properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 AnalogFailureWorkflowDetails: type: object required: - recIndex properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 generatedAarUrl: type: string description: Chiave per recupero da safe-storage del documento aar AnalogSuccessWorkflowDetails: type: object required: - recIndex - physicalAddress properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 physicalAddress: $ref: '#/components/schemas/PhysicalAddress' EndWorkflowStatus: type: string description: Stato chiusura workflow enum: - SUCCESS - FAILURE CompletelyUnreachableCreationRequestDetails: type: object required: - recIndex properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 legalfactId: type: string description: >- Identificativo dell'atto opponibile a terzi del quale è stata richiesta la creazione endWorkflowStatus: $ref: '#/components/schemas/EndWorkflowStatus' completionWorkflowDate: type: string description: Data chiusura workflow format: date-time CompletelyUnreachableDetails: type: object required: - recIndex properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 legalFactGenerationDate: type: string description: Data generazione atto opponibile a terzi allegato format: date-time DigitalAddress: description: Indirizzo di invio della notifica required: - address - type type: object properties: type: x-field-extra-annotation: '@lombok.ToString.Exclude' type: string description: tipo di indirizzo PEC, REM, SERCQ, ... address: x-field-extra-annotation: '@lombok.ToString.Exclude' type: string description: account@domain DigitalDeliveryCreationRequestDetails: type: object required: - recIndex - digitalAddress properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 digitalAddress: $ref: '#/components/schemas/DigitalAddress' endWorkflowStatus: $ref: '#/components/schemas/EndWorkflowStatus' completionWorkflowDate: type: string description: Data chiusura workflow format: date-time legalfactId: type: string description: >- Identificativo dell'atto opponibile a terzi del quale è stata richiesta la creazione DigitalFailureWorkflowDetails: type: object required: - recIndex properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 DigitalSuccessWorkflowDetails: type: object required: - recIndex - digitalAddress properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 digitalAddress: $ref: '#/components/schemas/DigitalAddress' DigitalAddressSource: type: string description: sorgente indirizzo di invio della notifica enum: - PLATFORM - SPECIAL - GENERAL GetAddressInfoDetails: type: object required: - recIndex - digitalAddressSource - isAvailable - attemptDate properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 digitalAddressSource: $ref: '#/components/schemas/DigitalAddressSource' isAvailable: type: boolean description: Disponibilità indirizzo attemptDate: type: string description: Data tentativo format: date-time RaddType: type: string description: | tipo di Rete Anti Digital Divide
__FSU__: Fornitore Servizio Universale
RaddTransactionId: type: string description: Identificativo della pratica all'interno della rete RADD RecipientType: type: string enum: - PF - PG DelegateInfo: type: object properties: internalId: type: string taxId: x-field-extra-annotation: '@lombok.ToString.Exclude' type: string operatorUuid: type: string mandateId: type: string denomination: x-field-extra-annotation: '@lombok.ToString.Exclude' type: string delegateType: $ref: '#/components/schemas/RecipientType' NotificationViewedCreationRequestDetails: type: object required: - recIndex properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 legalfactId: type: string description: >- Identificativo dell'atto opponibile a terzi del quale è stata richiesta la creazione eventTimestamp: type: string description: Data ricezione richiesta visualizzazione notifica format: date-time raddType: $ref: '#/components/schemas/RaddType' raddTransactionId: $ref: '#/components/schemas/RaddTransactionId' delegateInfo: $ref: '#/components/schemas/DelegateInfo' NotificationViewedDetails: type: object required: - recIndex properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 notificationCost: description: >- costo notifica in euro cents, può essere nullo se la notifica si è perfezionata prima per decorrenza termini example: 1220 type: integer format: int64 raddType: $ref: '#/components/schemas/RaddType' raddTransactionId: $ref: '#/components/schemas/RaddTransactionId' delegateInfo: $ref: '#/components/schemas/DelegateInfo' DeliveryMode: type: string description: Tipologia Domiciliazione enum: - DIGITAL - ANALOG ContactPhase: type: string description: Fase in cui è avvenuta la richiesta enum: - CHOOSE_DELIVERY - SEND_ATTEMPT PublicRegistryCallDetails: type: object required: - recIndex - deliveryMode - contactPhase - sentAttemptMade - sendDate properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 deliveryMode: $ref: '#/components/schemas/DeliveryMode' contactPhase: $ref: '#/components/schemas/ContactPhase' sentAttemptMade: type: integer description: Numero di tentativi di notificazione già effettuati format: int32 sendDate: type: string description: Data invio richiesta ai public registry format: date-time PublicRegistryResponseDetails: type: object required: - recIndex properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 digitalAddress: $ref: '#/components/schemas/DigitalAddress' physicalAddress: $ref: '#/components/schemas/PhysicalAddress' RefinementDetails: type: object required: - recIndex properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 notificationCost: description: >- costo notifica in euro cents, può essere nullo se la notifica si è perfezionata prima per visualizzazione example: 1220 type: integer format: int64 NotificationRefusedErrorV20: type: object properties: errorCode: type: string description: |- Errori di rifiuto della notifica. - FILE_NOTFOUND - FILE_SHA_ERROR - TAXID_NOT_VALID - SERVICE_UNAVAILABLE - FILE_PDF_INVALID_ERROR - FILE_PDF_TOOBIG_ERROR - NOT_VALID_ADDRESS - RECIPIENT_ID_NOT_VALID - F24_METADATA_NOT_VALID - PAYMENT_NOT_VALID ... detail: type: string RequestRefusedDetailsV20: type: object properties: refusalReasons: type: array description: Motivazioni che hanno portato al rifiuto della notifica items: $ref: '#/components/schemas/NotificationRefusedErrorV20' ScheduleAnalogWorkflowDetails: type: object required: - recIndex properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 ScheduleDigitalWorkflowDetails: type: object required: - recIndex - digitalAddressSource - sentAttemptMade - lastAttemptDate properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 digitalAddress: $ref: '#/components/schemas/DigitalAddress' digitalAddressSource: $ref: '#/components/schemas/DigitalAddressSource' sentAttemptMade: type: integer format: int32 lastAttemptDate: type: string format: date-time ScheduleRefinementDetails: type: object required: - recIndex properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 schedulingDate: type: string format: date-time IoSendMessageResult: type: string description: Risultato invio messaggio su IO enum: - NOT_SENT_OPTIN_ALREADY_SENT - SENT_COURTESY - SENT_OPTIN SendCourtesyMessageDetails: type: object required: - recIndex - digitalAddress - sendDate properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 digitalAddress: $ref: '#/components/schemas/DigitalAddress' sendDate: type: string description: data invio messaggio di cortesia format: date-time ioSendMessageResult: $ref: '#/components/schemas/IoSendMessageResult' PrepareDigitalDetails: type: object required: - recIndex - digitalAddressSource - retryNumber properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 digitalAddress: $ref: '#/components/schemas/DigitalAddress' digitalAddressSource: $ref: '#/components/schemas/DigitalAddressSource' retryNumber: type: integer description: numero dei tentativi effettuati format: int32 attemptDate: type: string description: data tentativo precedente format: date-time nextDigitalAddressSource: $ref: '#/components/schemas/DigitalAddressSource' nextSourceAttemptsMade: type: integer description: numero del prossimo tentativo da effettuare format: int32 nextLastAttemptMadeForSource: type: string description: data tentativo precedente per prossimo source format: date-time SendDigitalDetails: type: object required: - recIndex - digitalAddress - digitalAddressSource - retryNumber properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 digitalAddress: $ref: '#/components/schemas/DigitalAddress' digitalAddressSource: $ref: '#/components/schemas/DigitalAddressSource' retryNumber: type: integer description: numero dei tentativi effettuati format: int32 ResponseStatus: type: string description: stato risposta ricevuta da externalChannel enum: - OK - KO SendingReceipt: type: object properties: id: type: string system: type: string SendDigitalFeedbackDetails: type: object required: - recIndex - digitalAddress - responseStatus - notificationDate properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 digitalAddress: $ref: '#/components/schemas/DigitalAddress' responseStatus: $ref: '#/components/schemas/ResponseStatus' notificationDate: type: string description: data notifica format: date-time deliveryFailureCause: description: Codice errore, vuoto in caso di successo type: string deliveryDetailCode: type: string description: | Stato - Codice relativo all'evento - Descrizione: - PROGRESS C000 = PREACCETTAZIONE - PROGRESS C001 = ACCETTAZIONE - PROGRESS C005 = PRESA_IN_CARICO - PROGRESS C007 = PREAVVISO_ERRORE_CONSEGNA - PROGRESS DP00 = RE-INVIO PEC CAUSA FALLIMENTO TEMPORANEO - PROGRESS DP10 = TIMEOUT RICEZIONE RISULTATO - ERROR C002 = NON_ACCETTAZIONE - ERROR C004 = ERRORE_CONSEGNA - ERROR C006 = RILEVAZIONE_VIRUS - ERROR C008 = ERRORE_COMUNICAZIONE_SERVER_PEC - ERROR C009 = ERRORE_DOMINIO_PEC_NON_VALIDO - ERROR C010 = ERROR_INVIO_PEC - OK C003 = AVVENUTA_CONSEGNA sendingReceipts: type: array items: $ref: '#/components/schemas/SendingReceipt' SendDigitalProgressDetails: type: object properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 deliveryFailureCause: description: Codice errore, opzionale type: string deliveryDetailCode: type: string description: Vedi deliveryDetailCode in SendDigitalFeedbackDetails shouldRetry: type: boolean description: indica se il progress ha dato luogo ad un ritentativo digitalAddress: $ref: '#/components/schemas/DigitalAddress' digitalAddressSource: $ref: '#/components/schemas/DigitalAddressSource' notificationDate: type: string description: data notifica format: date-time sendingReceipts: type: array items: $ref: '#/components/schemas/SendingReceipt' retryNumber: type: integer description: numero dei tentativi effettuati format: int32 ServiceLevel: type: string description: Livello Servizio enum: - AR_REGISTERED_LETTER - REGISTERED_LETTER_890 BaseAnalogDetails: type: object required: - recIndex - physicalAddress - serviceLevel - sentAttemptMade properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 physicalAddress: $ref: '#/components/schemas/PhysicalAddress' serviceLevel: $ref: '#/components/schemas/ServiceLevel' sentAttemptMade: type: integer description: numero dei tentativi effettuati format: int32 relatedRequestId: type: string description: Id relativo alla eventuale precedente richiesta di invio cartaceo SendAnalogDetails: type: object required: - recIndex - physicalAddress - serviceLevel - sentAttemptMade properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 physicalAddress: $ref: '#/components/schemas/PhysicalAddress' serviceLevel: $ref: '#/components/schemas/ServiceLevel' sentAttemptMade: type: integer description: numero dei tentativi effettuati format: int32 relatedRequestId: type: string description: Id relativo alla eventuale precedente richiesta di invio cartaceo productType: type: string description: | Tipo di invio cartaceo effettivamente inviato - __AR__: Raccomandata nazionale Andata e Ritorno - __890__: Recapito a norma della legge 890/1982 - __RIR__: Raccomandata internazionale Andata e Ritorno analogCost: type: integer description: costo in eurocent dell'invio format: int32 numberOfPages: type: integer description: numero delle pagina che compongono la spedizione cartacea format: int32 envelopeWeight: type: integer description: peso in grammi della busta format: int32 prepareRequestId: type: string description: request id della relativa richiesta di prepare AttachmentDetails: type: object properties: id: type: string documentType: type: string description: > Codici documentType: - Plico: Indica il plico cartaceo - AR: Indica la ricevuta di ritorno - Indagine: Indica la ricevuta dell'analisi dell'indagine - 23L: Indica la ricevuta 23L url: type: string date: type: string format: date-time SendAnalogFeedbackDetails: type: object required: - recIndex - physicalAddress - serviceLevel - sentAttemptMade - responseStatus properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 physicalAddress: $ref: '#/components/schemas/PhysicalAddress' serviceLevel: $ref: '#/components/schemas/ServiceLevel' sentAttemptMade: type: integer description: numero dei tentativi effettuati format: int32 newAddress: $ref: '#/components/schemas/PhysicalAddress' responseStatus: $ref: '#/components/schemas/ResponseStatus' notificationDate: type: string format: date-time deliveryFailureCause: type: string description: > __Motivazione di mancata consegna__ obbligatorie negli stati di mancata consegna - __M01__ destinatario irreperibile - __M02__ destinatario deceduto - __M03__ destinatario sconosciuto - __M04__ destinatario trasferito - __M05__ invio rifiutato - __M06__ indirizzo inesatto - __M07__ indirizzo inesistente - __M08__ indirizzo insufficiente - __F01__ - in caso di furto - __F02__ - in caso di smarrimento - __F03__ - in caso di deterioramento deliveryDetailCode: type: string description: > Formato: - __deliveryDetailCode__- [prodotto] - [statusCode] - statusDescription - __CON080__- [ALL] - [PROGRESS] - Stampato ed Imbustato - __RECRS001C__- [RS] - [OK] - Consegnato - Fascicolo Chiuso - __RECRS002C__- [RS] - [KO] - Mancata consegna - Fascicolo Chiuso - __RECRS002F__- [RS] - [KO] - Irreperibilità Assoluta - Fascicolo Chiuso - __RECRS003C__- [RS] - [OK] - Consegnato presso Punti di Giacenza - Fascicolo Chiuso - __RECRS004C__- [RS] - [OK] - Mancata consegna presso Punti di Giacenza - Fascicolo Chiuso - __RECRS005C__- [RS] - [OK] - Compiuta giacenza - Fascicolo Chiuso - __RECRS006__- [RS] - [PROGRESS] - Furto/Smarrimento/deterioramento - __RECRN001C__- [AR] - [OK] - Consegnato - Fascicolo Chiuso - __RECRN002C__- [AR] - [KO] - Mancata consegna - Fascicolo Chiuso - __RECRN002F__- [AR] - [KO] - Irreperibilità Assoluta - Fascicolo Chiuso - __RECRN003C__- [AR] - [OK] - Consegnato presso Punti di Giacenza - Fascicolo Chiuso - __RECRN004C__- [AR] - [KO] - Mancata consegna presso Punti di Giacenza - Fascicolo Chiuso - __RECRN005C__- [AR] - [OK] - Compiuta giacenza - Fascicolo Chiuso - __RECRN006__- [AR] - [PROGRESS] - Furto/Smarrimento/deterioramento - __RECAG001C__- [890] - [OK] - Consegnato - Fascicolo Chiuso - __RECAG002C__- [890] - [OK] - Consegnato a persona abilitata - Fascicolo Chiuso - __RECAG003C__- [890] - [KO] - Mancata consegna - Fascicolo Chiuso - __RECAG003F__- [890] - [KO] - Irreperibilità Assoluta - Fascicolo Chiuso - __RECAG004__- [890] - [PROGRESS] - Furto/Smarrimento/deterioramento - __RECAG005C__- [890] - [OK | PROGRESS] - Consegnato presso Punti di Giacenza - Fascicolo Chiuso - __RECAG006C__- [890] - [OK | PROGRESS] - Consegna a persona abilitata presso Punti di Giacenza - Fas. Ch. - __RECAG007C__- [890] - [KO | PROGRESS] - Mancata consegna presso Punti di Giacenza - Fascicolo Chiuso - __RECAG008C__- [890] - [PROGRESS] - Compiuta giacenza - Fascicolo Chiuso - __PNAG012__- [890] - [KO] - Distacco d'ufficio 23L - Fascicolo Chiuso - __RECRI003C__- [RIR] - [OK] - Consegnato - Fascicolo Chiuso - __RECRI004C__- [RIR] - [KO] - Non Consegnato - fascicolo Chiuso - __RECRI005__- [RIR] - [PROGRESS] - Furto/Smarrimento/deterioramento - __RECRSI003C__- [RIS] - [OK] - Consegnato - Fascicolo Chiuso - __RECRSI004C__- [RIS] - [KO] - Non Consegnato - fascicolo Chiuso - __RECRSI005__- [RIS] - [PROGRESS] - Furto/Smarrimento/deterioramento attachments: type: array items: $ref: '#/components/schemas/AttachmentDetails' sendRequestId: type: string description: RequestId della richiesta d'invio registeredLetterCode: type: string description: Codice della raccomandata BaseRegisteredLetterDetails: type: object required: - recIndex - physicalAddress properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 physicalAddress: $ref: '#/components/schemas/PhysicalAddress' SimpleRegisteredLetterDetails: type: object required: - recIndex - physicalAddress properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 physicalAddress: $ref: '#/components/schemas/PhysicalAddress' productType: type: string description: | Tipo di invio cartaceo effettivamente inviato - __RS__: Raccomandata nazionale Semplice (per Avviso di mancato Recapito) - __RIS__: Raccomandata internazionale Semplice analogCost: type: integer description: costo in eurocent dell'invio format: int32 numberOfPages: type: integer description: numero delle pagina che compongono la spedizione cartacea format: int32 envelopeWeight: type: integer description: peso in grammi della busta format: int32 prepareRequestId: type: string description: request id della relativa richiesta di prepare AarCreationRequestDetails: type: object required: - recIndex - aarKey - numberOfPages properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 aarKey: type: string description: Chiave per recupero da safe-storage del documento aar numberOfPages: type: integer description: numero di pagine del PDF generato format: int32 AarGenerationDetails: type: object required: - recIndex - generatedAarUrl - numberOfPages properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 generatedAarUrl: type: string description: Chiave per recupero da safe-storage del documento aar numberOfPages: type: integer description: numero di pagine del PDF generato format: int32 NotHandledDetails: type: object required: - recIndex - reasonCode - reason properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 reasonCode: type: string description: Codice motivazione casistica non gestita reason: type: string description: Motivazione casistica non gestita NotificationPaidDetailsV20: type: object required: - recIndex - recipientType - paymentSourceChannel properties: recIndex: type: integer description: Index destinatario che ha effettuato il pagamento della notifica format: int32 recipientType: $ref: '#/components/schemas/RecipientType' amount: type: integer description: Importo di pagamento in eurocent format: int32 creditorTaxId: $ref: '#/components/schemas/paTaxId' noticeCode: $ref: '#/components/schemas/noticeCode' idF24: type: string description: un UUID che identifica un pagamento f24 paymentSourceChannel: type: string description: Canale sorgente della richiesta di pagamento uncertainPaymentDate: deprecated: true type: boolean description: Indica se la data di pagamento é certa SendAnalogProgressDetails: type: object required: - recIndex properties: recIndex: type: integer description: Index destinatario che ha effettuato il pagamento della notifica format: int32 notificationDate: type: string format: date-time deliveryFailureCause: type: string description: Vedi deliveryFailureCause in SendAnalogFeedbackDetails deliveryDetailCode: type: string description: Vedi deliveryDetailCode in SendAnalogFeedbackDetails attachments: type: array items: $ref: '#/components/schemas/AttachmentDetails' sendRequestId: type: string description: RequestId della richiesta d'invio registeredLetterCode: type: string description: Codice della raccomandata SimpleRegisteredLetterProgressDetails: type: object required: - recIndex properties: recIndex: type: integer description: Index destinatario che ha effettuato il pagamento della notifica format: int32 notificationDate: type: string format: date-time deliveryFailureCause: type: string description: Vedi deliveryFailureCause in SendAnalogFeedbackDetails deliveryDetailCode: type: string description: Vedi deliveryDetailCode in SendAnalogFeedbackDetails attachments: type: array items: $ref: '#/components/schemas/AttachmentDetails' sendRequestId: type: string description: RequestId della richiesta d'invio registeredLetterCode: type: string description: Codice della raccomandata ProbableDateAnalogWorkflowDetails: type: object required: - recIndex - schedulingAnalogDate properties: recIndex: type: integer description: Index destinatario che ha effettuato il pagamento della notifica format: int32 schedulingAnalogDate: type: string format: date-time description: Data probabile di inizio del flusso analogico NotificationCancellationRequestDetails: type: object required: - cancellationRequestId properties: cancellationRequestId: type: string description: Id della richiesta NotificationCancelledDetails: type: object required: - notificationCost - notRefinedRecipientIndexes properties: notificationCost: description: >- costo notifica in euro cents, vale 100 * numero di recipient not refined example: 1220 type: integer format: int64 notRefinedRecipientIndexes: type: array items: description: indice del recipient non perfezionato type: integer format: int32 PrepareAnalogDomicileFailureDetails: type: object required: - recIndex properties: recIndex: type: integer description: Index destinatario notifica digitale format: int32 foundAddress: $ref: '#/components/schemas/PhysicalAddress' failureCause: type: string description: | __Motivazione fallimento prepare - __D00__ Indirizzo non trovato - __D01__ Indirizzo non valido - __D02__ Indirizzo coincidente con quello del primo tentativo prepareRequestId: type: string description: RequestId della richiesta di prepare TimelineElementDetailsV20: description: The raw event payload that will be different based on the event. oneOf: - $ref: '#/components/schemas/SenderAckCreationRequestDetails' - $ref: '#/components/schemas/NormalizedAddressDetails' - $ref: '#/components/schemas/NotificationRequestAcceptedDetails' - $ref: '#/components/schemas/AnalogFailureWorkflowDetails' - $ref: '#/components/schemas/AnalogSuccessWorkflowDetails' - $ref: '#/components/schemas/CompletelyUnreachableCreationRequestDetails' - $ref: '#/components/schemas/CompletelyUnreachableDetails' - $ref: '#/components/schemas/DigitalDeliveryCreationRequestDetails' - $ref: '#/components/schemas/DigitalFailureWorkflowDetails' - $ref: '#/components/schemas/DigitalSuccessWorkflowDetails' - $ref: '#/components/schemas/GetAddressInfoDetails' - $ref: '#/components/schemas/NotificationViewedCreationRequestDetails' - $ref: '#/components/schemas/NotificationViewedDetails' - $ref: '#/components/schemas/PublicRegistryCallDetails' - $ref: '#/components/schemas/PublicRegistryResponseDetails' - $ref: '#/components/schemas/RefinementDetails' - $ref: '#/components/schemas/RequestRefusedDetailsV20' - $ref: '#/components/schemas/ScheduleAnalogWorkflowDetails' - $ref: '#/components/schemas/ScheduleDigitalWorkflowDetails' - $ref: '#/components/schemas/ScheduleRefinementDetails' - $ref: '#/components/schemas/SendCourtesyMessageDetails' - $ref: '#/components/schemas/PrepareDigitalDetails' - $ref: '#/components/schemas/SendDigitalDetails' - $ref: '#/components/schemas/SendDigitalFeedbackDetails' - $ref: '#/components/schemas/SendDigitalProgressDetails' - $ref: '#/components/schemas/BaseAnalogDetails' - $ref: '#/components/schemas/SendAnalogDetails' - $ref: '#/components/schemas/SendAnalogFeedbackDetails' - $ref: '#/components/schemas/BaseRegisteredLetterDetails' - $ref: '#/components/schemas/SimpleRegisteredLetterDetails' - $ref: '#/components/schemas/AarCreationRequestDetails' - $ref: '#/components/schemas/AarGenerationDetails' - $ref: '#/components/schemas/NotHandledDetails' - $ref: '#/components/schemas/NotificationPaidDetailsV20' - $ref: '#/components/schemas/SendAnalogProgressDetails' - $ref: '#/components/schemas/SimpleRegisteredLetterProgressDetails' - $ref: '#/components/schemas/ProbableDateAnalogWorkflowDetails' - $ref: '#/components/schemas/NotificationCancellationRequestDetails' - $ref: '#/components/schemas/NotificationCancelledDetails' - $ref: '#/components/schemas/PrepareAnalogDomicileFailureDetails' NotificationAttachmentDownloadMetadataResponse: title: Url e metadati per il download di un allegato di una notifica description: |- I due campi più importanti sono __url__ e __retryAfter__.
- __url__ è presente se il file è pronto per essere scaricato ed indica l'url a cui fare GET. - __retryAfter__ indica che il file è stato archiviato e bisognerà aspettare un numero di secondi non inferiore a quanto indicato dal campo _retryAfter_.
type: object required: - filename - contentType - contentLength - sha256 properties: filename: type: string contentType: type: string example: application/pdf contentLength: type: integer format: int32 example: 54092 description: dimensione, in byte, del contenuto. sha256: type: string description: SHA256 del contenuto del file. url: type: string description: >- URL preautorizzato a cui effettuare una richiesta GET per ottenere il contenuto del documento. Presente solo se il documento è pronto per il download. retryAfter: type: integer format: int32 description: >- Stima del numero di secondi da aspettare prima che il contenuto del documento sia disponibile per il download. NotificationPaymentInfo: title: Informazioni per effettuare il pagamento description: >- Informazioni utili per effettuare il pagamento di una notifica, sono associate al destinatario perché le spese di notifica possono differire a seconda del canale di notifica utilizzato.
- _noticeCode_: "codice avviso pagoPA" di pagamento del sistema pagoPA, usato per pagamento online.
- _creditorTaxId_: codice fiscale dell'ente a cui fa riferimento il "codice avviso pagoPA".
- _pagoPaForm_: riferimento al PDF contenete il bollettino pagoPA
type: object required: - noticeCode - creditorTaxId properties: noticeCode: $ref: '#/components/schemas/noticeCode' creditorTaxId: $ref: '#/components/schemas/paTaxId' noticeCodeAlternative: $ref: '#/components/schemas/noticeCode' pagoPaForm: $ref: '#/components/schemas/NotificationPaymentAttachment' NotificationRecipient: description: Informazioni sui destinatari required: - denomination - recipientType - taxId - physicalAddress type: object properties: recipientType: type: string description: >- Tipologia di destinatario: Persona Fisica (PF) o Persona Giuridica (PG) enum: - PF - PG taxId: $ref: '#/components/schemas/TaxId' denomination: $ref: '#/components/schemas/Denomination' digitalDomicile: $ref: '#/components/schemas/NotificationDigitalAddress' physicalAddress: $ref: '#/components/schemas/NotificationPhysicalAddress' payment: $ref: '#/components/schemas/NotificationPaymentInfo' NewNotificationRequest: description: I campi utilizzati per la creazione di una nuova Notifica. type: object required: - paProtocolNumber - subject - recipients - documents - physicalCommunicationType - notificationFeePolicy - senderDenomination - senderTaxId properties: idempotenceToken: description: >- Identificativo utilizzabile dal chiamante per disambiguare differenti "richieste di notificazione" effettuate con lo stesso numero di protocollo (campo _paProtocolNumber_). Questo può essere necessario in caso di "richiesta di notifica" rifiutata per errori nei codici di verifica degli allegati. type: string pattern: ^[ -~]*$ maxLength: 256 paProtocolNumber: description: Numero di protocollo che la PA mittente assegna alla notifica stessa type: string pattern: ^.*$ maxLength: 256 subject: type: string description: titolo della notifica, NON inserire dati personali/sensibili minLength: 10 maxLength: 134 pattern: ^.*$ abstract: type: string description: >- descrizione sintetica della notifica, NON inserire dati personali/sensibili pattern: ^.*$ maxLength: 1024 recipients: type: array description: Informazioni sui destinatari items: $ref: '#/components/schemas/NotificationRecipient' documents: type: array description: Documenti notificati items: $ref: '#/components/schemas/NotificationDocument' minItems: 1 notificationFeePolicy: $ref: '#/components/schemas/NotificationFeePolicy' cancelledIun: $ref: '#/components/schemas/IUN' physicalCommunicationType: type: string description: Tipologia comunicazione fisica enum: - AR_REGISTERED_LETTER - REGISTERED_LETTER_890 senderDenomination: $ref: '#/components/schemas/Denomination' senderTaxId: $ref: '#/components/schemas/paTaxId' group: type: string description: Gruppo di utenti dell'ente mittente che può visualizzare la notifica pattern: ^[ -~]*$ maxLength: 1024 amount: type: integer format: int32 description: Importo della notifica in eurocent paymentExpirationDate: type: string minLength: 10 maxLength: 10 pattern: ^([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$ description: >- Data di scadenza del pagamento nel formato YYYY-MM-DD riferito all'Italia taxonomyCode: type: string minLength: 7 maxLength: 7 pattern: ^([0-9]{6}[A-Z]{1})$ description: >- Codice tassonomico della notifica basato sulla definizione presente nell'allegato 2 capitolo C del bando [__AVVISO PUBBLICO MISURA 1.4.5 PIATTAFORMA NOTIFICHE DIGITALI__](https://pnrrcomuni.fondazioneifel.it/bandi_public/Bando/325) default: 010101P pagoPaIntMode: type: string description: >- Modalitá di integrazione pagoPA per l'attualizazione del costo della notifica.
- _NONE_: nessuna attualizzazione.
- _SYNC_: modalitá sincrona.
- _ASYNC_: modalitá asincrona. (Non ancora supportata)
enum: - NONE - SYNC - ASYNC SentNotification: description: Le informazioni riguardanti una richiesta di notifica accettata allOf: - $ref: '#/components/schemas/NewNotificationRequest' - type: object required: - iun - sentAt properties: senderPaId: type: string description: >- Identificativo (non IPA) della PA mittente che ha eseguito l'onboarding su SelfCare. pattern: ^.*$ maxLength: 256 iun: $ref: '#/components/schemas/IUN' sentAt: type: string description: Momento di ricezione della notifica da parte di PN format: date-time cancelledByIun: $ref: '#/components/schemas/IUN' documentsAvailable: type: boolean description: Indica se i documenti notificati sono ancora disponibili. TimelineElementCategory: type: string description: | stato di avanzamento del processo di notifica:` * `SENDER_ACK_CREATION_REQUEST` - Invio della richiesta di creazione dell'atto opponibile a terzi di presa in carico per il mittente a safe storage * `VALIDATE_NORMALIZE_ADDRESSES_REQUEST` - Invio della richiesta di validazione e normalizzazione indirizzi fisici presenti nella richiesta di notifica * `NORMALIZED_ADDRESS` - Salvataggio indirizzi normalizzati * `REQUEST_ACCEPTED` - Richiesta di notifica accettata a seguito dei controlli di validazione * `REQUEST_REFUSED` - Richiesta di notifica rifiutata per fallimento di validazione * `SEND_COURTESY_MESSAGE` - Invio di un messaggio di cortesia * `GET_ADDRESS` - Disponibilità dell’indirizzo specifico (domicilio digitale di piattaforma, domicilio digitale speciale, domicilio digitale generale, indirizzo fisico sulla notifica o sui registri nazionali) * `PUBLIC_REGISTRY_CALL` - Richiesta ai registri pubblici per ottenere domicilio digitale generale o per ottenere indirizzo fisico da ANPR, da registro della imprese, da anagrafe tributaria. * `PUBLIC_REGISTRY_RESPONSE` - Ricevuta la risposta dei registri pubblici * `SCHEDULE_ANALOG_WORKFLOW` - Pianificazione del workflow per invio cartaceo * `SCHEDULE_DIGITAL_WORKFLOW` -Pianificazione del workflow per invio digitale (PEC) del secondo tentativo in caso di fallimento del primo. * `PREPARE_DIGITAL_DOMICILE` - Preparazione per l’invio dell’avviso digitale.Va a valutare la timeline per capire quale sarà il prossimo indirizzo da usare. * `SEND_DIGITAL_DOMICILE` - Invio digitale dell’avviso di notifica * `SEND_DIGITAL_PROGRESS` - Tentativo di Invio PEC ad un determinato indirizzo. * `SEND_DIGITAL_FEEDBACK` - Ottenuto esito ad un invio digitale * `SCHEDULE_REFINEMENT` - Pianificato il perfezionamento per decorrenza termini * `REFINEMENT` - Perfezionamento per decorrenza termini * `DIGITAL_DELIVERY_CREATION_REQUEST` - Invio della richiesta di creazione dell'atto opponibile a terzi di chiusura del workflow digitale a safe storage * `DIGITAL_SUCCESS_WORKFLOW` - Completato con successo il workflow di invio digitale * `DIGITAL_FAILURE_WORKFLOW` - Completato con fallimento il workflow di invio digitale: tutti i tentativi di invio ai domicili digitali sono falliti. * `ANALOG_SUCCESS_WORKFLOW` - Completato con successo il workflow di invio cartaceo * `ANALOG_FAILURE_WORKFLOW` - Completato con fallimento il workflow di invio cartaceo NOTA: se per tutti i destinatari si conclude il workflow con fallimento verrà scatenato l’evento COMPLETELY_UNREACHABLE * `PREPARE_SIMPLE_REGISTERED_LETTER` - Invio richiesta di prepare (preparazione ad invio) raccomandata semplice a paperChannel * `SEND_SIMPLE_REGISTERED_LETTER` - Invio di raccomandata semplice * `SEND_SIMPLE_REGISTERED_LETTER_PROGRESS` - Ricezione informazioni intermedia relative ad una notificazione cartacea semplice * `NOTIFICATION_VIEWED_CREATION_REQUEST` - Invio della richiesta di creazione dell'atto opponibile a terzi di presa visione a safe storage * `NOTIFICATION_VIEWED` - Visualizzazione della notifica (perfeziona la notifica se non già perfezionata per decorrenza termini o da altro destinatario) * `PREPARE_ANALOG_DOMICILE` - Invio richiesta di prepare (preparazione ad invio) cartaceo a paperChannel * `SEND_ANALOG_DOMICILE` - Invio cartaceo dell’avviso di notifica * `SEND_ANALOG_PROGRESS` - Ricezione informazioni intermedia relative ad una notificazione cartacea * `SEND_ANALOG_FEEDBACK` - Ricezione esito dell'invio cartaceo * `COMPLETELY_UNREACHABLE_CREATION_REQUEST` - Invio della richiesta di creazione dell'atto (simile a opponibile a terzi) di completamento con fallimento del workflow di invio cartaceo * `COMPLETELY_UNREACHABLE` - Tutti i destinatari risultano irraggiungibili * `AAR_CREATION_REQUEST` - Invio della richiesta di creazione dell'AAR (Avviso di Avvenuta Ricezione) a safe storage * `AAR_GENERATION` - Generazione dell’AAR (Avviso di Avvenuta Ricezione) * `PAYMENT` - Ricezione pagamento della notifica * `NOT_HANDLED` - Per la sperimentazione l'invio analogico non è previsto, viene inserito tale elemento di timeline * `PROBABLE_SCHEDULING_ANALOG_DATE` - Data probabile di inizio del flusso analogico enum: - SENDER_ACK_CREATION_REQUEST - VALIDATE_NORMALIZE_ADDRESSES_REQUEST - NORMALIZED_ADDRESS - REQUEST_ACCEPTED - SEND_COURTESY_MESSAGE - GET_ADDRESS - PUBLIC_REGISTRY_CALL - PUBLIC_REGISTRY_RESPONSE - SCHEDULE_ANALOG_WORKFLOW - SCHEDULE_DIGITAL_WORKFLOW - PREPARE_DIGITAL_DOMICILE - SEND_DIGITAL_DOMICILE - SEND_DIGITAL_PROGRESS - SEND_DIGITAL_FEEDBACK - REFINEMENT - SCHEDULE_REFINEMENT - DIGITAL_DELIVERY_CREATION_REQUEST - DIGITAL_SUCCESS_WORKFLOW - DIGITAL_FAILURE_WORKFLOW - ANALOG_SUCCESS_WORKFLOW - ANALOG_FAILURE_WORKFLOW - PREPARE_SIMPLE_REGISTERED_LETTER - SEND_SIMPLE_REGISTERED_LETTER - SEND_SIMPLE_REGISTERED_LETTER_PROGRESS - NOTIFICATION_VIEWED_CREATION_REQUEST - NOTIFICATION_VIEWED - PREPARE_ANALOG_DOMICILE - SEND_ANALOG_DOMICILE - SEND_ANALOG_PROGRESS - SEND_ANALOG_FEEDBACK - PAYMENT - COMPLETELY_UNREACHABLE - COMPLETELY_UNREACHABLE_CREATION_REQUEST - REQUEST_REFUSED - AAR_CREATION_REQUEST - AAR_GENERATION - NOT_HANDLED - PROBABLE_SCHEDULING_ANALOG_DATE NotificationRefusedError: type: object properties: errorCode: type: string description: |- Errori di rifiuto della notifica. - FILE_NOTFOUND - FILE_SHA_ERROR - TAXID_NOT_VALID - SERVICE_UNAVAILABLE - FILE_PDF_INVALID_ERROR - FILE_PDF_TOOBIG_ERROR - NOT_VALID_ADDRESS - RECIPIENT_ID_NOT_VALID detail: type: string RequestRefusedDetails: type: object properties: refusalReasons: type: array description: Motivazioni che hanno portato al rifiuto della notifica items: $ref: '#/components/schemas/NotificationRefusedError' NotificationPaidDetails: type: object required: - recIndex - recipientType - paymentSourceChannel properties: recIndex: type: integer description: Index destinatario che ha effettuato il pagamento della notifica format: int32 recipientType: $ref: '#/components/schemas/RecipientType' amount: type: integer description: Importo di pagamento in eurocent format: int32 creditorTaxId: $ref: '#/components/schemas/paTaxId' noticeCode: $ref: '#/components/schemas/noticeCode' idF24: type: string description: un UUID che identifica un pagamento f24 paymentSourceChannel: type: string description: Canale sorgente della richiesta di pagamento uncertainPaymentDate: type: boolean description: Indica se la data di pagamento é certa TimelineElementDetails: description: The raw event payload that will be different based on the event. oneOf: - $ref: '#/components/schemas/SenderAckCreationRequestDetails' - $ref: '#/components/schemas/NormalizedAddressDetails' - $ref: '#/components/schemas/NotificationRequestAcceptedDetails' - $ref: '#/components/schemas/AnalogFailureWorkflowDetails' - $ref: '#/components/schemas/AnalogSuccessWorkflowDetails' - $ref: '#/components/schemas/CompletelyUnreachableCreationRequestDetails' - $ref: '#/components/schemas/CompletelyUnreachableDetails' - $ref: '#/components/schemas/DigitalDeliveryCreationRequestDetails' - $ref: '#/components/schemas/DigitalFailureWorkflowDetails' - $ref: '#/components/schemas/DigitalSuccessWorkflowDetails' - $ref: '#/components/schemas/GetAddressInfoDetails' - $ref: '#/components/schemas/NotificationViewedCreationRequestDetails' - $ref: '#/components/schemas/NotificationViewedDetails' - $ref: '#/components/schemas/PublicRegistryCallDetails' - $ref: '#/components/schemas/PublicRegistryResponseDetails' - $ref: '#/components/schemas/RefinementDetails' - $ref: '#/components/schemas/RequestRefusedDetails' - $ref: '#/components/schemas/ScheduleAnalogWorkflowDetails' - $ref: '#/components/schemas/ScheduleDigitalWorkflowDetails' - $ref: '#/components/schemas/ScheduleRefinementDetails' - $ref: '#/components/schemas/SendCourtesyMessageDetails' - $ref: '#/components/schemas/PrepareDigitalDetails' - $ref: '#/components/schemas/SendDigitalDetails' - $ref: '#/components/schemas/SendDigitalFeedbackDetails' - $ref: '#/components/schemas/SendDigitalProgressDetails' - $ref: '#/components/schemas/BaseAnalogDetails' - $ref: '#/components/schemas/SendAnalogDetails' - $ref: '#/components/schemas/SendAnalogFeedbackDetails' - $ref: '#/components/schemas/BaseRegisteredLetterDetails' - $ref: '#/components/schemas/SimpleRegisteredLetterDetails' - $ref: '#/components/schemas/AarCreationRequestDetails' - $ref: '#/components/schemas/AarGenerationDetails' - $ref: '#/components/schemas/NotHandledDetails' - $ref: '#/components/schemas/NotificationPaidDetails' - $ref: '#/components/schemas/SendAnalogProgressDetails' - $ref: '#/components/schemas/SimpleRegisteredLetterProgressDetails' - $ref: '#/components/schemas/ProbableDateAnalogWorkflowDetails' PersonalData: type: object properties: surname: pattern: ^[A-Z\\s]{1,24}$ type: string description: surname of the person name: pattern: ^[A-Z\\s]{1,20}$ type: string description: name of the person birthDate: pattern: ^\d{2}-\d{2}-\d{4}$ type: string description: birthdate of the person sex: pattern: ^[FM]$ type: string description: indicate if is (F)emale or (M)ale birthPlace: pattern: ^[A-Z\s]{1,40}$ type: string description: birth place of the person birthProvince: pattern: ^[A-Z]{2}$ type: string description: birth province of the person description: Personal Data (Dati Anagrafici) object TaxAddress: type: object properties: municipality: pattern: ^[A-Z]{1,40}$ type: string description: municipality of the tax address province: pattern: ^[A-Z]{2}$ type: string description: province of the tax address address: pattern: ^[A-Z0-9\s.]{1,35}$ type: string description: street and house number of the tax address description: Tax Residence (Domicilio Fiscale) object PersonData: type: object properties: personalData: $ref: '#/components/schemas/PersonalData' taxAddress: $ref: '#/components/schemas/TaxAddress' description: Person Data (Dati Anagrafici PF) object CompanyData: type: object properties: name: pattern: ^[A-Z\s]{1,60}$ type: string description: Company name taxAddress: $ref: '#/components/schemas/TaxAddress' description: Company Data (Dati Anagrafici PNF) object TaxPayerStandard: type: object properties: taxCode: pattern: >- ^([A-Z]{6}[0-9LMNPQRSTUV]{2}[ABCDEHLMPRST]{1}[0-9LMNPQRSTUV]{2}[A-Z]{1}[0-9LMNPQRSTUV]{3}[A-Z]{1})|([0-9]{11})$ type: string description: Tax Payer Tax Code isNotTaxYear: type: boolean description: field that show if the current year is included person: $ref: '#/components/schemas/PersonData' company: $ref: '#/components/schemas/CompanyData' relativePersonTaxCode: pattern: >- ^([A-Z]{6}[0-9LMNPQRSTUV]{2}[ABCDEHLMPRST]{1}[0-9LMNPQRSTUV]{2}[A-Z]{1}[0-9LMNPQRSTUV]{3}[A-Z]{1})|([0-9]{11})$ type: string description: It is the tax code of a relative of the main tax payer id: pattern: ^[A-Z0-9]{2}$ type: string description: identification code IncludeNotificationCost: type: object required: - applyCost properties: applyCost: type: boolean nullable: false description: to check if include notification cost Tax: allOf: - $ref: '#/components/schemas/IncludeNotificationCost' type: object properties: taxType: pattern: ^[A-Z0-9]{4}$ type: string description: identification code of the type of tax installment: pattern: ^[A-Z0-9]{0,4}$ type: string description: identification code of the ente year: pattern: ^[1-2][0-9]{3}$ type: string description: reference year of the tax debit: pattern: ^[0-9]{3,15}$ type: string description: debit amount of the tax credit: pattern: ^[0-9]{3,15}$ type: string description: credit amount of the tax description: Tax object TreasurySection: type: object properties: records: type: array items: $ref: '#/components/schemas/Tax' description: list of the taxes office: pattern: ^[A-Z0-9]{3}$ type: string description: identification code of the office document: pattern: ^\d{11}$ type: string description: identification code of the document description: Treasury Section (Sezione Erario) object Period: type: object properties: startDate: pattern: ^[0-9]{6}$ type: string description: start date of the period endDate: pattern: ^[0-9]{6}$ type: string description: end date of the period description: Reporting Period (Sezione INPS) object InpsRecord: allOf: - $ref: '#/components/schemas/IncludeNotificationCost' type: object properties: office: pattern: ^[0-9]{3,4}$ type: string description: identification code of the office reason: pattern: ^[A-Z-]{3,4}$ type: string description: contribution reason for the record inps: pattern: ^[A-Za-z0-9\s]{0,17}$ type: string description: INPS identification code period: $ref: '#/components/schemas/Period' debit: pattern: ^[0-9]{3,15}$ type: string description: debit amount of the record credit: pattern: ^[0-9]{3,15}$ type: string description: credit amount of the record description: INPS Record object InpsSection: type: object properties: records: type: array items: $ref: '#/components/schemas/InpsRecord' description: INPS Record List description: INPS Section (Sezione INPS) object RegionRecord: allOf: - $ref: '#/components/schemas/IncludeNotificationCost' type: object properties: region: pattern: ^[0-9]{2}$ type: string description: region identification code taxType: pattern: ^[0-9A-Z]{4}$ type: string description: identification code of the type of tax installment: pattern: ^[A-Z0-9]{0,4}$ type: string description: identification code of the ente year: pattern: ^[1-2][0-9]{3}$ type: string description: reference year debit: pattern: ^[0-9]{3,15}$ type: string description: debit amount of the record credit: pattern: ^[0-9]{3,15}$ type: string description: credit amount of the record description: Region Record object RegionSection: type: object properties: records: type: array items: $ref: '#/components/schemas/RegionRecord' description: Region Record List description: Region Section (Sezione Regioni) object LocalTaxRecord: allOf: - $ref: '#/components/schemas/IncludeNotificationCost' type: object required: - municipality - taxType properties: municipality: pattern: ^[0-9A-Z]{4}$ type: string description: identification code of the municipality reconsideration: type: boolean description: to check if it is a reconsideration act propertiesChanges: type: boolean description: to check if there are some changes in properties list advancePayment: type: boolean description: to check if it is a payment in advance fullPayment: type: boolean description: to check if it a full payment numberOfProperties: pattern: ^[0-9]{3}$ type: string description: number of properties taxType: pattern: ^[0-9]{4}$ type: string description: identification code of the type of tax installment: pattern: ^[A-Z0-9]{0,4}$ type: string description: identification code of the ente year: pattern: ^[1-2][0-9]{3}$ type: string description: reference year debit: pattern: ^[0-9]{3,15}$ type: string description: debit amount of the record credit: pattern: ^[0-9]{3,15}$ type: string description: credit amount of the record description: LocalTax Record object LocalTaxSection: type: object properties: operationId: pattern: ^[A-Z0-9]{18}$ type: string description: identification code of the operation records: type: array items: $ref: '#/components/schemas/LocalTaxRecord' deduction: pattern: ^[0-9]{3,15}$ type: string description: if there are any deduction description: LocalTax Section (Sezione LocalTax e Altri Tributi Locali) object InailRecord: allOf: - $ref: '#/components/schemas/IncludeNotificationCost' type: object properties: office: pattern: ^[0-9]{5}$ type: string description: identification code of the office company: pattern: ^[0-9]{8}$ type: string description: identification code of the company control: pattern: ^[0-9]{2}$ type: string description: control identification code refNumber: pattern: ^[0-9]{6}$ type: string description: reference number reason: pattern: ^[A-Z0-9]$ type: string description: reason of the record debit: pattern: ^[0-9]{3,15}$ type: string description: debit amount of the record credit: pattern: ^[0-9]{3,15}$ type: string description: credit amount of the record description: INAIL Record object SocialSecurityRecord: allOf: - $ref: '#/components/schemas/IncludeNotificationCost' type: object properties: institution: pattern: ^[0-9]{4}$ type: string description: identification code of the institution office: pattern: ^[0-9A-Z]{5}$ type: string description: identification code of the office reason: pattern: ^[0-9A-Z]{3,4}$ type: string description: reason of the contribution position: pattern: ^[0-9]{9}$ type: string description: identification code of the position period: $ref: '#/components/schemas/Period' debit: pattern: ^[0-9]{3,15}$ type: string description: debit amount of the record credit: pattern: ^[0-9]{3,15}$ type: string description: credit amount of the record description: Social Security Record object SocialSecuritySection: type: object properties: records: type: array items: $ref: '#/components/schemas/InailRecord' socSecRecords: type: array items: $ref: '#/components/schemas/SocialSecurityRecord' description: Social Security Record List description: Social Security Section (Sezione Altri Enti Previdenziali) object F24Standard: type: object properties: taxPayer: $ref: '#/components/schemas/TaxPayerStandard' treasury: $ref: '#/components/schemas/TreasurySection' inps: $ref: '#/components/schemas/InpsSection' region: $ref: '#/components/schemas/RegionSection' localTax: $ref: '#/components/schemas/LocalTaxSection' socialSecurity: $ref: '#/components/schemas/SocialSecuritySection' TaxPayerSimplified: type: object properties: taxCode: pattern: >- ^([A-Z]{6}[0-9LMNPQRSTUV]{2}[ABCDEHLMPRST]{1}[0-9LMNPQRSTUV]{2}[A-Z]{1}[0-9LMNPQRSTUV]{3}[A-Z]{1})|([0-9]{11})$ type: string description: Tax Payer Tax Code personalData: $ref: '#/components/schemas/PersonalData' relativePersonTaxCode: pattern: >- ^([A-Z]{6}[0-9LMNPQRSTUV]{2}[ABCDEHLMPRST]{1}[0-9LMNPQRSTUV]{2}[A-Z]{1}[0-9LMNPQRSTUV]{3}[A-Z]{1})|([0-9]{11})$ type: string description: It is the tax code of a relative of the main tax payer id: pattern: ^[A-Z0-9]{2}$ type: string description: identification code document: pattern: ^\d{11}$ type: string description: identification code of the document office: pattern: ^[A-Z0-9]{3}$ type: string description: identification code of the office SimplifiedPaymentRecord: allOf: - $ref: '#/components/schemas/LocalTaxRecord' required: - section properties: section: pattern: ^(ER|RG|EL)$ type: string description: section code (ER|RG|EL) description: Payment Reason Record object SimplifiedPaymentSection: type: object properties: operationId: pattern: ^[A-Z0-9]{18}$ type: string description: identification code of the operation records: type: array items: $ref: '#/components/schemas/SimplifiedPaymentRecord' description: Payments Record List description: Payment Reason Section (Motivo del Pagamento) object F24Simplified: type: object properties: taxPayer: $ref: '#/components/schemas/TaxPayerSimplified' payments: $ref: '#/components/schemas/SimplifiedPaymentSection' TaxPayerExcise: type: object properties: taxCode: pattern: >- ^([A-Z]{6}[0-9LMNPQRSTUV]{2}[ABCDEHLMPRST]{1}[0-9LMNPQRSTUV]{2}[A-Z]{1}[0-9LMNPQRSTUV]{3}[A-Z]{1})|([0-9]{11})$ type: string description: Tax Payer Tax Code isNotTaxYear: type: boolean description: field that show if the current year is included person: $ref: '#/components/schemas/PersonData' company: $ref: '#/components/schemas/CompanyData' relativePersonTaxCode: pattern: >- ^([A-Z]{6}[0-9LMNPQRSTUV]{2}[ABCDEHLMPRST]{1}[0-9LMNPQRSTUV]{2}[A-Z]{1}[0-9LMNPQRSTUV]{3}[A-Z]{1})|([0-9]{11})$ type: string description: It is the tax code of a relative of the main tax payer id: pattern: ^[A-Z0-9]{2}$ type: string description: identification code ExciseTax: allOf: - $ref: '#/components/schemas/IncludeNotificationCost' type: object properties: institution: pattern: ^[A-Z]{2}$ type: string description: institution of the tax province: pattern: ^[A-Z]{2}$ type: string description: province of the tax id: pattern: ^[A-Z0-9]{17}$ type: string description: identification code taxType: pattern: ^[0-9A-Z]{4}$ type: string description: identification code of the type of tax installment: pattern: ^[A-Z0-9]{0,4}$ type: string description: identification code of the ente month: pattern: ^[0-1][0-9]$ type: string description: month reference year: pattern: ^[1-2][0-9]{3}$ type: string description: reference year debit: pattern: ^[0-9]{3,15}$ type: string description: debit amount description: Excise Tax object ExciseSection: type: object properties: records: type: array items: $ref: '#/components/schemas/ExciseTax' description: Excise Tax List office: pattern: ^[A-Z0-9]{3}$ type: string description: identification code of the office document: pattern: ^\d{11}$ type: string description: identification code of the document description: Excise Section (Accise) object F24Excise: type: object properties: taxPayer: $ref: '#/components/schemas/TaxPayerExcise' treasury: $ref: '#/components/schemas/TreasurySection' inps: $ref: '#/components/schemas/InpsSection' region: $ref: '#/components/schemas/RegionSection' localTax: $ref: '#/components/schemas/LocalTaxSection' excise: $ref: '#/components/schemas/ExciseSection' description: F24 Excise (Accise) object TaxPayerElide: type: object properties: taxCode: pattern: >- ^([A-Z]{6}[0-9LMNPQRSTUV]{2}[ABCDEHLMPRST]{1}[0-9LMNPQRSTUV]{2}[A-Z]{1}[0-9LMNPQRSTUV]{3}[A-Z]{1})|([0-9]{11})$ type: string description: Tax Payer Tax Code person: $ref: '#/components/schemas/PersonData' company: $ref: '#/components/schemas/CompanyData' relativePersonTaxCode: pattern: >- ^([A-Z]{6}[0-9LMNPQRSTUV]{2}[ABCDEHLMPRST]{1}[0-9LMNPQRSTUV]{2}[A-Z]{1}[0-9LMNPQRSTUV]{3}[A-Z]{1})|([0-9]{11})$ type: string description: It is the tax code of a relative of the main tax payer id: pattern: ^[A-Z0-9]{2}$ type: string description: identification code TreasuryRecord: allOf: - $ref: '#/components/schemas/IncludeNotificationCost' type: object properties: type: pattern: ^[A-Z]$ type: string description: type of treasury id: pattern: ^[A-Z0-9]{17}$ type: string description: identification code of the element taxType: pattern: ^[A-Z0-9]{4}$ type: string description: identification code of the type of tax year: pattern: ^[1-2][0-9]{3}$ type: string description: referance year debit: pattern: ^[0-9]{3,15}$ type: string description: debit amount of the record description: Treasury Record object TreasuryAndOtherSection: type: object properties: office: pattern: ^[A-Z0-9]{3}$ type: string description: identification code of the office document: pattern: ^\d{11}$ type: string description: identification code of the document records: type: array items: $ref: '#/components/schemas/TreasuryRecord' description: Treasury Records description: Treasury ans Other Section (Sezione Erario e Altro) object F24Elid: type: object properties: taxPayer: $ref: '#/components/schemas/TaxPayerElide' treasury: $ref: '#/components/schemas/TreasuryAndOtherSection' StatusDetail: description: Detail of response to cancellation async call type: object required: - code properties: code: description: Internal code of the error or warning, in human-readable format example: NOTIFICATION_CANCELLATION_ACCEPTED, NOTIFICATION_ALREADY_CANCELLED type: string level: description: | informational level of status detail: INFO,WARN, ERR ERR (error) by default example: INFO type: string detail: description: >- A human readable explanation specific to this occurrence of the problem. example: Parameter not valid type: string LegalFactListElement: description: Informazioni relative ad un atto opponibile a terzi type: object required: - iun - legalFactsId properties: taxId: description: Valorizzato se l'atto si riferisce a uno specifico destinatario type: string minLength: 11 maxLength: 16 pattern: >- ^([A-Z]{6}[0-9LMNPQRSTUV]{2}[A-Z]{1}[0-9LMNPQRSTUV]{2}[A-Z]{1}[0-9LMNPQRSTUV]{3}[A-Z]{1})|([0-9]{11})$ iun: description: Identificativo Univoco Notifica a cui l'atto è associato type: string maxLength: 25 pattern: ^[A-Z]{4}-[A-Z]{4}-[A-Z]{4}-[0-9]{6}-[A-Z]{1}-[0-9]{1}$ legalFactsId: $ref: '#/components/schemas/LegalFactsId' LegalFactList: title: Elenco atti opponibili description: Elenco degli atti opponibili a terzi correlati a una notifica type: array items: $ref: '#/components/schemas/LegalFactListElement' DocumentCategory: title: Tipi di documenti description: Tipologie di documenti type: string enum: - AAR DocumentDownloadMetadataResponse: title: Url e metadati per il download di un documento correlato alla notifica description: |- I due campi più importanti sono __url__ e __retryAfter__.
- __url__ è presente se il file è pronto per essere scaricato ed indica l'url a cui fare GET. - __retryAfter__ indica che il file non è stato archiviato e bisognerà aspettare un numero di secondi non inferiore a quanto indicato dal campo _retryAfter_.
type: object required: - filename - contentLength properties: filename: type: string contentLength: type: number format: decimal32 example: 54092 description: dmensione, in byte, del contenuto. url: type: string description: >- URL preautorizzato a cui effettuare una richiesta GET per ottenere il contenuto del documento. Presente solo se il documento è pronto per il download. retryAfter: type: number format: decimal32 description: >- Stima del numero di secondi da aspettare prima che il contenuto del documento sia scaricabile. StreamCreationRequest: description: >- Richiesta di creazione di uno stream di eventi di avanzamento delle notifiche. type: object required: - title - eventType properties: title: description: Nome sintetico dello stream type: string maxLength: 256 pattern: ^.*$ eventType: description: |- Tipo di eventi presenti nel flusso: - _STATUS_: cambiamenti di stato delle notifiche - _TIMELINE_: eventi a granularità fine type: string enum: - STATUS - TIMELINE filterValues: description: >- rappresenta l'elenco degli stati o elementi di timeline che si vogliono filtrare; inserendo un array vuoto [] si riceveranno solo gli elementi relativi a v1 type: array items: type: string minLength: 4 maxLength: 256 pattern: ^[A-Z_]+$ StreamMetadataResponse: description: Configurazioni di un flusso di eventi allOf: - $ref: '#/components/schemas/StreamCreationRequest' - type: object required: - streamId - activationDate properties: streamId: description: Identificativo del flusso di eventi type: string format: uuid activationDate: description: Timestamp in cui il flusso di eventi è stato attivato type: string format: date-time StreamListResponse: description: Elenco di flussi di eventi type: array items: $ref: '#/components/schemas/StreamListElement' StreamListElement: type: object required: - title - streamId properties: streamId: type: string format: uuid title: type: string maxLength: 256 pattern: ^.*$ ProgressResponse: type: array items: $ref: '#/components/schemas/ProgressResponseElement' ProgressResponseElement: type: object required: - eventId - timestamp properties: eventId: description: >- Elemento che garantisce univocità e ordinamento temporale all'interno dello stream type: string timestamp: description: Istante a cui è avvenuto l'evento type: string format: date-time notificationRequestId: description: Identificativo della richiesta di notifica type: string iun: description: >- Identificativo della notifica, presente solo se la richiesta di notifica è stata accettata. type: string maxLength: 25 pattern: ^[A-Z]{4}-[A-Z]{4}-[A-Z]{4}-[0-9]{6}-[A-Z]{1}-[0-9]{1}$ newStatus: $ref: '#/components/schemas/NotificationStatus' timelineEventCategory: $ref: '#/components/schemas/TimelineElementCategoryV20' recipientIndex: type: integer format: int32 minimum: 0 description: Indice del destinatario al quale si riferisce l'evento analogCost: type: integer format: int32 description: Eventuale costo in eurocent associato all'evento channel: type: string description: >- Canale a cui si riferisce l'evento. I valori previsti sono: - Per eventi legati a messaggi di cortesia: APPIO, SMS, EMAIL - Per eventi legati all'invio digitale: PEC - Per eventi legati all'invio analogico: AR_REGISTERED_LETTER, REGISTERED_LETTER_890 - Per eventi legati all'invio di raccomandate semplici: SIMPLE_REGISTERED_LETTER legalfactIds: type: array items: type: string example: - PN_LEGAL_FACTS-0002-9G2S-RK3M-JI62-JK9Q - PN_LEGAL_FACTS-0002-9G2S-RK3M-JI62-JK9E description: chiavi degli eventuali allegati associati all'evento validationErrors: type: array description: eventuali errori di validazione associati all'evento items: $ref: '#/components/schemas/RefusedReason' RefusedReason: type: object properties: errorCode: type: string detail: type: string securitySchemes: ApiKeyAuth: type: apiKey in: header name: x-api-key