Submit a Message passing the user fiscal_code in the request body

Descrizione

Questa API consente l’invio di messaggi verso un cittadino identificato tramite Codice Fiscale. Prima di inviare un messaggio, dovrai verificare che il cittadino sia iscritto a IO e che il servizio possa inviare comunicazioni al cittadino stesso.

Per utilizzare questa API devi aggiungere alla chiamata l'header Ocp-Apim-Subscription-Key contenente la chiave "use" primaria o secondaria del servizio scelto per l'invio del messaggio

fiscal_code*

time_to_live

Questo parametro è deprecato.

feature_level_type

content *

subject *

Ricorda che, ai sensi dell'art. 7.3 delle Linee Guida AgID, il titolo del messaggio non può contenere dati personali e ne va assicurata la minimizzazione all'interno del markdown *

markdown *

Quando componi e trasmetti il testo del messaggio in formato markdown, ricorda di impostare il charset UTF-8, così da garantire la corretta visualizzazione dei caratteri accentati.

Puoi formattare il testo e attivare funzioni speciali nei tuoi messaggi usando la sintassi Markdown.

require_secure_channels

due_date

Fai attenzione al fuso orario! La data deve essere espressa nel fuso orario UTC (Z). In Italia si usa il fuso UTC+1 quando è in vigore l'ora solare, mentre si usa il fuso UTC+2 quando è in vigore l'ora legale.

Esempio:

2022-09-30T22:00:00Z --> In Italia è la mezzanotte del 1° ottobre 2022

2022-11-30T23:00:00Z --> In Italia è la mezzanotte del 1° novembre 2022

Fai attenzione all'orario! Se la data di scadenza non prevede un orario specifico, solitamente si fa riferimento alla fine della giornata. Inserisci correttamente l'orario per evitare di mostrare una data di scadenza errata.

Esempio:

✅ 12 gennaio (23:59:59) --> L'utente può pagare entro la giornata del 12 gennaio

❌ 12 gennaio (00:00:01) --> L'utente può pagare entro la giornata dell'11 gennaio

La data di scadenza del messaggio è separata rispetto a quella dell'eventuale posizione debitoria associata e può essere specificata anche a in assenza di di quest'ultima

Se hai sottoscritto l'accordo Premium, IO genererà per te promemoria di lettura o di pagamento in prossimità della data di scadenza indicata: i promemoria saranno inviati al dispositivo del destinatario sotto forma di notifiche push

payment_data

Per l’invio degli avvisi di pagamento è necessario richiedere specifica l’abilitazione.

amount *

notice_number *

È importante che il codice fiscale del servizio mittente corrisponda al codice fiscale dell’ente creditore che emette l’avviso pagoPA.

invalid_after_due_date

Questa funzionalità è riservata agli enti che hanno concordato con PagoPA l'abilitazione alla separazione tra i codici fiscali del mittente e del beneficiario della posizione debitoria.

third_party_data

configuration_id *

Per maggiori informazioni fai riferimento alla sezione Configurazione remota

id *

has_precondition

Se popolato, il valore di questo campo ridefinisce, per il messaggio corrente, il comportamento di default indicato in fase di configurazione (per maggiori informazioni fai riferimento a Configurazione remota)

has_remote_content

has_attachments

prescription_data

Questa funzionalità è in sperimentazione interna.

eu_covid_cert

Questa funzionalità è riservata ai soggetti autorizzati.

Questa funzionalità è in sperimentazione interna.

Esempi

Messaggio non remotizzato (statico)

### REQUEST
curl --location --request POST 'https://api.io.pagopa.it/api/v1/messages' \
--header 'Content-Type: application/json' \
--header 'Ocp-Apim-Subscription-Key: __YOUR_API_KEY__' \
--data-raw '{
"content": {
"subject": "Welcome new user !",
"markdown": "# This is a markdown header\n\nto show how easily markdown can be converted to **HTML**\n\nRemember: this has to be a long text."
},
“feature_level_type”: “STANDARD”,
"fiscal_code": "AAAAAA00A00A000A"
}'

Messaggio con titolo e corpo remoti

Contenuto della richiesta
{
     "content": {
        "subject": "Titolo del messaggio mostrato in inbox",
        "markdown": "Questo testo sarà sostituito con il markdown remoto specificato al momento della fruizione del messaggio",
        "third_party_data": {
            "id": "2d5e0bcf-7ac3-4afc-a8bd-ac3c27582b91",
            //-----------------------------------------------------
            "configuration_id": "0e9852ccb8a04128bd637c807b9d80d3",
            "has_remote_content": true
            //-----------------------------------------------------
        }
    },
    "fiscal_code": "AAAAAA00A00A000A"
}

Messaggio con precondizioni

Contenuto della richiesta
{
     "content": {
        "subject": "Titolo del messaggio",
        "markdown": "Testo del messaggio lungo almeno ottanta caratteri nel rispetto delle specifiche di integrazione con IO",
        "third_party_data": {
            "id": "2d5e0bcf-7ac3-4afc-a8bd-ac3c27582b91",
            "configuration_id": "0e9852ccb8a04128bd637c807b9d80d3",
            //----------------------
            "has_precondition": true
            //----------------------
        }
    },
    "fiscal_code": "AAAAAA00A00A000A"
}

Messaggio remotizzato con allegati

Contenuto della richiesta
{
     "content": {
        "subject": "Titolo del messaggio",
        "markdown": "Testo del messaggio lungo almeno ottanta caratteri nel rispetto delle specifiche di integrazione con IO",
        "third_party_data": {
            "id": "2d5e0bcf-7ac3-4afc-a8bd-ac3c27582b91",
            "configuration_id": "0e9852ccb8a04128bd637c807b9d80d3",
            //---------------------
            "has_attachments": true
            //---------------------
        }
    },
    "fiscal_code": "AAAAAA00A00A000A"
}

Nel blocco third_party_data è possibile specificare più combinazioni dei flag has_precondition, has_remote_content e has_attachments (quest'ultimo solo se hai sottoscritto l'Accordo relativo alle Funzionalità Premium), come nell'esempio:

Contenuto della richiesta
{
     "content": {
        "subject": "Titolo del messaggio",
        "markdown": "Testo del messaggio lungo almeno ottanta caratteri nel rispetto delle specifiche di integrazione con IO",
        "third_party_data": {
            "id": "2d5e0bcf-7ac3-4afc-a8bd-ac3c27582b91",
            "configuration_id": "0e9852ccb8a04128bd637c807b9d80d3",
            //-------------------------
            "has_precondition": true,
            "has_remote_content": true,
            "has_attachments": true
            //-------------------------
        }
    },
    "fiscal_code": "AAAAAA00A00A000A"
}

IO effettua controlli di coerenza tra i flag indicati in questa fase e quanto ritornato coi dettagli del messaggio remoto; come esempio, se indichi "has_attachments": true ma in fase di recupero dei dettagli del messaggio non includi la struttura "attachments", il tuo destinatario riceverà un errore e non potrà visualizzare il messaggio.

Per maggiori dettagli fai riferimento a OpenAPI endpoint di recupero dei contenuti remotizzati

Risposta attesa

In tutti i casi sopra descritti, IO ritorna l'identificativo del messaggio che puoi usare per interrogarne lo stato tramite l'API Get Message.

Contenuto della risposta
{
    "id": "01EM6X4JB9VSZTQ8H16KMQFCEJ"
}

Se hai sottoscritto l'accordo Premium, oltre a sapere se sia stato correttamente inviato potrai conoscerne lo stato di lettura e, se presente, di pagamento della posizione debitoria associata.

Risorse utili

https://developer.io.italia.it/openapi.html#operation/submitMessageforUserWithFiscalCodeInBody

Last updated