LogoLogo
v6.0
v6.0
  • 🏠Guida tecnica
  • 🕗Changelog
  • 🔢Setup iniziale
    • Adesione tramite l'Area Riservata
    • Iscrizione al Developer Portal
    • Configurazione remota
  • Funzionalità
    • 📦Pubblicare un servizio
      • Creare un servizio
      • Provare un servizio in test
      • Revisione del servizio
      • Visibilità del servizio in App
      • Importare servizi nell'Area Riservata
      • Dati obbligatori
        • Attributi
        • Service Metadata
      • Informazioni sensibili
      • Argomento del servizio
      • Stato del servizio
      • API Key
        • API Key manage
        • API Key use
      • Gestire l'accesso ai servizi tramite i gruppi
    • ✉️Inviare un messaggio
      • Messaggi di test
      • Inviare un messaggio tradizionale
      • Inviare un messaggio a contenuto remoto
      • Aggiungere allegati
  • API e specifiche
    • 📐OpenAPI
    • API Servizi
      • Manage Service: Get
      • Manage Service: Get keys
      • Manage Service: Get User Services
      • Manage Service: Create
      • Manage Service: Delete
      • Manage Service: Update
      • Manage Service: Request Review
      • Manage Service: Release
      • Manage Service: Get Released
      • Manage Service: Unpublish
      • Manage Service: Regenerate api key
      • Manage Service: Upload service logo
      • Upload organization logo
      • Service Topics: Get all service topics
    • API Messaggi
      • Get a User Profile using POST
      • Submit a Message passing the user fiscal_code in the request body
      • Get Message
      • CRU Configurazioni remote
      • Get Subscriptions Feed
      • ⚠️Get a User Profile
      • ⚠️Submit a Message passing the user fiscal_code as path parameter
    • Errori comuni
    • Specifiche API
    • OpenAPI endpoint di recupero dei contenuti remotizzati
    • Indirizzo IP pubblico
  • 🔑Abilitazioni
    • Test con Codici Fiscali reali
    • Test invio avvisi pagoPA
    • Subscription feed
    • Gestione dei servizi
    • Funzionalità Premium
  • Risorse Utili
    • #️⃣Guida al Markdown
    • ❓Supporto agli Enti (tutorial, FAQ)
    • 📘Glossario
Powered by GitBook
On this page
  1. API e specifiche
  2. API Messaggi

CRU Configurazioni remote

PreviousGet MessageNextGet Subscriptions Feed

Descrizione

Questa API consente alla tua Organizzazione di registrarsi presso IO come provider di contenuti remoti e di gestire nel tempo la registrazione.

La registrazione ha come oggetto le configurazioni, ossia l'insieme delle informazioni utili a creare la comunicazione tra IO e le infrastrutture della tua Organizzazione, secondo il protocollo definito nel paragrafo .

Per maggiori informazioni puoi consultare la nella sezione Setup iniziale

Tutte le API descritte in questa pagina si riferiscono alle attività dell'Ente tramite e si basano sull'ottenimento e l'utilizzo della che puoi nell'area di gestione dei Servizi di IO.

Le operazioni a disposizione comprendono:

  1. La creazione di una nuova configurazione remota

  2. La modifica di una configurazione remota esistente

  3. Il recupero delle configurazioni remote definite

  4. Il recupero di una particolare configurazione definita

La cancellazione di una configurazione remota non è al momento supportata

Fai riferimento al paragrafo Esempi per maggiori informazioni sull'utilizzo dei campi e sugli scenari d'uso censiti.

API "Create"

Con questa API puoi creare una nuova configurazione per ottenere il configuration_id da utilizzare in tutte le chiamate successive, anche per la .

API "Update"

Questa API ti consente di aggiornare una configurazione esistente, identificata dal configuration_id.

Allo scopo di garantire nel tempo la consistenza e il corretto funzionamento in app dei messaggi a contenuto remoto, è onere del mittente adeguare tempestivamente le configurazioni ogni qualvolta si riveli necessario, utilizzando l'API di gestione qui descritta.

API di recupero delle configurazioni definite

Con questa API puoi recuperare le configurazioni definite nell'ambito della sottoscrizione indicata negli header. Ciascun elemento ritornato nell'array rcConfigList riporta il nome, la descrizione, la presenza di precondizioni e i dati tecnici propri della configurazione (URL di base e informazioni di autenticazione).

API di recupero di una configurazione

Con questa API, utilizzando come chiave il configuration_id, puoi recuperare i dati specifici della corrispondente configurazione.

Esempi

Creazione di una configurazione remota

Nell'esempio riportato, si richiede la creazione di una nuova configurazione relativa al solo ambiente di produzione, per il quale sono indicati:

  • la URL di base nel campo base_url ("https://theremotecontentdomain.tld/basepath")

  • la relativa API key con cui si autenticherà su IO ("ac66427c-584b-4c81-9443-e761a226d33d", nel campokey, valore che i tuoi sistemi si attenderanno nell'header con nome "X-API-KEY" indicato nel campo header_key_name)

CURL
curl --location 'https://api.io.pagopa.it/api/v1/messages-sending/remote-contents/configurations' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Ocp-Apim-Subscription-Key: REDACTED' \
--data '{
  "name": "IoRemoteConfig01",
  "description": "Configurazione contenuti remoti per app IO - Server 1",
  "disable_lollipop_for": [],
  "has_precondition": "NEVER",
  "is_lollipop_enabled": false,
  "prod_environment": {
    "base_url": "https://theremotecontentdomain.tld/basepath",
    "details_authentication": {
      "header_key_name": "X-API-Key",
      "key": "ac66427c-584b-4c81-9443-e761a226d33d",
      "type": "API-KEY"
    }
  }
}'

[non specificato]

has_precondition: NONE

has_precondition: ONCE

has_precondition: ALWAYS

Ricorda di impostare sempre il valore del campo details_authentication.type con la costante "API-KEY"

Esempio di risposta attesa
{
    "configuration_id": "DFE12CC534E649CD8D63BF1BAA547029"
}

Creazione di configurazioni remote distinte per test e produzione

In questo secondo esempio, puoi vedere come creare una configurazione relativa agli ambienti di test e produzione.

I due blocchi "prod_environment" e "test_environment" sono utilizzati da IO per contattare la tua infrastruttura secondo il seguente schema:

indichi solo "prod_environment"

IO ti contatterà usando sempre quella configurazione

indichi solo "test_environment"

IO ti contatterà usando sempre quella configurazione

indichi sia "prod_environment" che "test_environment"

IO ti contatterà usando la configurazione indicata in "test_environment" solo se il codice fiscale del destinatario del messaggio è incluso nell'array "test_users", altrimenti lo farà usando la configurazione indicata in "prod_environment"

Nel selezionare i destinatari da indicare in "test_users" ricorda che non è consentito l'invio di messaggi di test all'utenza generale: assicurati di avere il consenso degli interessati e che questi siano a conoscenza del test in corso.

CURL
curl --request POST --location 'https://api.io.pagopa.it/api/v1/messages-sending/remote-contents/configurations' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Ocp-Apim-Subscription-Key: REDACTED' \
--data '{
  "name": "IoRemoteConfig01",
  "description": "Configurazione contenuti remoti per app IO - Server 1",
  "disable_lollipop_for": [],
  "has_precondition": "NEVER",
  "is_lollipop_enabled": false,
  "test_environment": {
    "base_url": "https://theremotecontentdomain_test.tld/basepath",
    "details_authentication": {
      "header_key_name": "X-API-Key",
      "key": "78aec1e4-f625-4644-b9d9-0f3fdc8cbe60",
      "type": "API-KEY"
    },
    "test_users": [
      "HGDZDH64P28G225I",
      "ZLMYPD56M70L669Y"
    ]
  },
  "prod_environment": {
    "base_url": "https://theremotecontentdomain.tld/basepath",
    "details_authentication": {
      "header_key_name": "X-API-Key",
      "key": "ac66427c-584b-4c81-9443-e761a226d33d",
      "type": "API-KEY"
    }
  }
}'
Esempio di risposta attesa
{
    "configuration_id": "DFE12CC534E649CD8D63BF1BAA547029"
}

Recupero delle configurazioni definite

In questo esempio ti mostriamo come recuperare l'elenco completo delle configurazioni che hai definito nell'ambito della tua sottoscrizione:

CURL
curl --location 'https://api.io.pagopa.it/api/v1/messages-sending/remote-contents/configurations' \
--header 'Accept: application/json' \
--header 'Ocp-Apim-Subscription-Key: REDACTED'
Esempio di risposta attesa
{
  "rcConfigList": [
    {
      "configuration_id": "DFE12CC534E649CD8D63BF1BAA547029",
      "name": "IoRemoteConfig01",
      "description": "Configurazione contenuti remoti per app IO - Server 1",
      "disable_lollipop_for": [],
      "has_precondition": "NEVER",
      "is_lollipop_enabled": false,
      "test_environment": {
        "base_url": "https://theremotecontentdomain_test.tld/basepath",
        "details_authentication": {
          "header_key_name": "X-API-Key",
          "key": "78aec1e4-f625-4644-b9d9-0f3fdc8cbe60",
          "type": "API-KEY"
        },
        "test_users": [
          "HGDZDH64P28G225I",
          "ZLMYPD56M70L669Y"
        ]
      },
      "prod_environment": {
        "base_url": "https://theremotecontentdomain.tld/basepath",
        "details_authentication": {
          "header_key_name": "X-API-Key",
          "key": "ac66427c-584b-4c81-9443-e761a226d33d",
          "type": "API-KEY"
        }
      }
    }
  ]
}

Recupero di una specifica configurazione

In questo esempio puoi vedere come, essendo in possesso di un configuration_id, puoi recuperare tutte le informazioni relative a una configurazione definita in precedenza:

CURL
curl --location 'https://api.io.pagopa.it/api/v1/messages-sending/remote-contents/configurations/DFE12CC534E649CD8D63BF1BAA547029' \
--header 'Accept: application/json' \
--header 'Ocp-Apim-Subscription-Key: REDACTED'
Esempio di risposta attesa
{
    "configuration_id": "DFE12CC534E649CD8D63BF1BAA547029",
    "description": "Configurazione contenuti remoti per app IO - Server 1",
    "disable_lollipop_for": [],
    "has_precondition": "NEVER",
    "is_lollipop_enabled": false,
    "name": "IoRemoteConfig01",
    "prod_environment": {
        "base_url": "https://theremotecontentdomain.tld/basepath",
        "details_authentication": {
          "header_key_name": "X-API-Key",
          "key": "ac66427c-584b-4c81-9443-e761a226d33d",
          "type": "API-KEY"
        }
    }
}

Modifica di una configurazione esistente

In questo esempio ti mostriamo come puoi aggiornare i dati di una configurazione definita in precedenza, nello specifico qui si modifica la sua descrizione:

CURL
curl --location --request PUT 'https://api.io.pagopa.it/api/v1/messages-sending/remote-contents/configurations/DFE12CC534E649CD8D63BF1BAA547029' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Ocp-Apim-Subscription-Key: REDACTED' \
--data '{
    "configuration_id": "DFE12CC534E649CD8D63BF1BAA547029",
    "description": "***NUOVA*** configurazione contenuti remoti per app IO - Server 1",
    "disable_lollipop_for": [],
    "has_precondition": "NEVER",
    "is_lollipop_enabled": false,
    "name": "IoRemoteConfig01",
    "prod_environment": {
        "base_url": "https://theremotecontentdomain.tld/basepath",
        "details_authentication": {
          "header_key_name": "X-API-Key",
          "key": "ac66427c-584b-4c81-9443-e761a226d33d",
          "type": "API-KEY"
        }
    }
}'
Risposta attesa
204 No content.

Allo scopo di garantire nel tempo la consistenza e il corretto funzionamento in app dei messaggi a contenuto remoto, è responsabilità del mittente adeguare tempestivamente le configurazioni ogni qualvolta si riveli necessario, utilizzando l'API di gestione qui descritta.

Risorse utili

Il campo has_precondition regola l'interpretazione, da parte di IO, del corrispondente campo che indicherai in fase di creazione di un messaggio a contenuto remoto, secondo il seguente schema:

Le precondizioni all'apertura del messaggio saranno mostrate coerentemente con l'impostazione di has_precondition

Se il campo has_precondition non è specifciato , questo non avrà precondizioni all'apertura; altrimenti, queste saranno mostrate coerentemente con quel valore

Se il campo has_precondition non è specifciato , questo avrà precondizioni all'apertura mostrate solo finché il messaggio stesso non sarà stato letto dal destinatario; altrimenti, le precondizioni saranno mostrate coerentemente con il valore indicato per quello specifico messaggio

Se il campo has_precondition non è specifciato , le precondizioni all'apertura saranno mostrate sempre, ad ogni apertura; altrimenti, saranno mostrate coerentemente con il valore indicato per quello specifico messaggio

In risposta otterrai, nel campo "configuration_id", l'identificativo della configurazione che dovrai usare in tutte le chiamate seguenti, comprese quelle di che dovranno essere serviti da essa.

In risposta otterrai, nel campo "configuration_id", l'identificativo della configurazione che dovrai usare in tutte le chiamate seguenti, comprese quelle di che dovranno essere serviti da essa.

creazione dei messaggi a contenuto remoto
creazione dei messaggi a contenuto remoto
https://developer.io.italia.it/openapi.html#tag/remote-content

Get all the owned remote-content configurations

get

Get all the owned remote-content configurations

Authorizations
Responses
200
Return the configurations
application/json
400
Bad request
application/json
403
Request not authorized.
404
Resource not found.
500
There was an error trying to get the configurations.
application/json
get
GET /api/v1/messages-sending/remote-contents/configurations HTTP/1.1
Host: api.io.pagopa.it
Ocp-Apim-Subscription-Key: YOUR_API_KEY
Accept: */*
{
  "rcConfigList": [
    {
      "name": "text",
      "description": "text",
      "has_precondition": "text",
      "disable_lollipop_for": [
        "SPNDNL80R13C555X"
      ],
      "is_lollipop_enabled": true,
      "configuration_id": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
      "test_environment": {
        "base_url": "text",
        "details_authentication": {
          "header_key_name": "text",
          "key": "text",
          "type": "text"
        },
        "test_users": [
          "SPNDNL80R13C555X"
        ]
      },
      "prod_environment": {
        "base_url": "text",
        "details_authentication": {
          "header_key_name": "text",
          "key": "text",
          "type": "text"
        }
      }
    },
    {
      "user_id": "text"
    }
  ]
}

Get the remote-content configuration identified by the configurationId

get

Get the remote-content configuration using the provided configurationId passed as path param

Authorizations
Path parameters
configurationIdstring · UlidRequired

Ulid string.

Responses
200
Return the configuration
application/json
Responseall of
400
Bad request
application/json
403
Request not authorized.
404
Resource not found.
500
There was an error trying to get the configuration.
application/json
get
GET /api/v1/messages-sending/remote-contents/configurations/{configurationId} HTTP/1.1
Host: api.io.pagopa.it
Ocp-Apim-Subscription-Key: YOUR_API_KEY
Accept: */*
{
  "name": "text",
  "description": "text",
  "has_precondition": "text",
  "disable_lollipop_for": [
    "SPNDNL80R13C555X"
  ],
  "is_lollipop_enabled": true,
  "configuration_id": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
  "test_environment": {
    "base_url": "text",
    "details_authentication": {
      "header_key_name": "text",
      "key": "text",
      "type": "text"
    },
    "test_users": [
      "SPNDNL80R13C555X"
    ]
  },
  "prod_environment": {
    "base_url": "text",
    "details_authentication": {
      "header_key_name": "text",
      "key": "text",
      "type": "text"
    }
  },
  "user_id": "text"
}
  • Descrizione
  • API "Create"
  • POSTCreate a new remote-content configuration
  • API "Update"
  • PUTUpdate an existing remote-content configuration
  • API di recupero delle configurazioni definite
  • GETGet all the owned remote-content configurations
  • API di recupero di una configurazione
  • GETGet the remote-content configuration identified by the configurationId
  • Esempi
  • Creazione di una configurazione remota
  • Creazione di configurazioni remote distinte per test e produzione
  • Recupero delle configurazioni definite
  • Recupero di una specifica configurazione
  • Modifica di una configurazione esistente
  • Risorse utili

Update an existing remote-content configuration

put

Update an existing remote-content configuration using the provided payload

Authorizations
Path parameters
configurationIdstring · UlidRequired

Ulid string.

Body
all ofOptional
Responses
204
Configuration updated
400
Bad request
application/json
403
Request not authorized.
404
Resource not found.
500
There was an error updating the configuration.
application/json
put
PUT /api/v1/messages-sending/remote-contents/configurations/{configurationId} HTTP/1.1
Host: api.io.pagopa.it
Ocp-Apim-Subscription-Key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 403

{
  "name": "text",
  "description": "text",
  "has_precondition": "text",
  "disable_lollipop_for": [
    "SPNDNL80R13C555X"
  ],
  "is_lollipop_enabled": true,
  "test_environment": {
    "base_url": "text",
    "details_authentication": {
      "header_key_name": "text",
      "key": "text",
      "type": "text"
    },
    "test_users": [
      "SPNDNL80R13C555X"
    ]
  },
  "prod_environment": {
    "base_url": "text",
    "details_authentication": {
      "header_key_name": "text",
      "key": "text",
      "type": "text"
    }
  }
}

No content

messaggi a contenuto remoto
pagina dedicata
chiave "manage"
creazione dei messaggi a contenuto remoto

Create a new remote-content configuration

post

Create a new remote-content configuration using the provided payload

Authorizations
Body
all ofOptional
Responses
201
Configuration created
application/json
Responseall of
400
Bad request
application/json
500
There was an error creating the configuration.
application/json
post
POST /api/v1/messages-sending/remote-contents/configurations HTTP/1.1
Host: api.io.pagopa.it
Ocp-Apim-Subscription-Key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 403

{
  "name": "text",
  "description": "text",
  "has_precondition": "text",
  "disable_lollipop_for": [
    "SPNDNL80R13C555X"
  ],
  "is_lollipop_enabled": true,
  "test_environment": {
    "base_url": "text",
    "details_authentication": {
      "header_key_name": "text",
      "key": "text",
      "type": "text"
    },
    "test_users": [
      "SPNDNL80R13C555X"
    ]
  },
  "prod_environment": {
    "base_url": "text",
    "details_authentication": {
      "header_key_name": "text",
      "key": "text",
      "type": "text"
    }
  }
}
{
  "name": "text",
  "description": "text",
  "has_precondition": "text",
  "disable_lollipop_for": [
    "SPNDNL80R13C555X"
  ],
  "is_lollipop_enabled": true,
  "configuration_id": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
  "test_environment": {
    "base_url": "text",
    "details_authentication": {
      "header_key_name": "text",
      "key": "text",
      "type": "text"
    },
    "test_users": [
      "SPNDNL80R13C555X"
    ]
  },
  "prod_environment": {
    "base_url": "text",
    "details_authentication": {
      "header_key_name": "text",
      "key": "text",
      "type": "text"
    }
  }
}
recuperare
Area Riservata
has_precondition
a livello di singolo messaggio
a livello di singolo messaggio
a livello di singolo messaggio
a livello di singolo messaggio