Integrazione dell'archivio consensi tramite REST API
In questa sezione è mostrata l'integrazione e consultazione dell'archivio consensi, necessario per poter memorizzare delle prove del consenso al trattamento dei dati personali che gli utenti possono aver prestato consapevolmente navigando sul tuo sito web.
Questa documentazione descrive gli endpoint per la gestione dei consensi all'interno dei webspace. L'URL base dell'API è
https://api.avacy.eu/:team/v2
Crea un nuovo consenso per uno specifico spazio web
POST /webspaces/:id/consents
Parametri di route
id
(integer, obbligatorio): l'identificativo dello spazio web su cui viene creato il consenso.
Parametri nella richiesta (formato JSON):
identifier
(stringa, obbligatorio): Il tipo di identificatore utilizzato per il soggetto (ad esempio, email, userID).
subject
(oggetto, obbligatorio): Dettagli del soggetto che fornisce il consenso. Deve includere l'identifier specificato sopra.
ip_address
(stringa, obbligatorio): L'indirizzo IP del soggetto che fornisce il consenso.
proofs
(array, facoltativo): Un array di prove che supportano il consenso.
legal_notices
(array, facoltativo): Un elenco di avvisi legali a cui l'utente sta acconsentendo.
preferences
(oggetto, obbligatorio): Un oggetto contenente le preferenze del soggetto riguardo al consenso.
Esempio:
{
"identifier": "email",
"subject": {
"email": "utente@example.com",
"name": "Mario Rossi"
},
"ip_address": "192.168.0.1",
"proofs": "very-long-encoded-string",
"legal_notices": ["privacy_policy", "terms_of_service"],
"preferences": {
"newsletter": true,
"promotions": false
}
}
Risposta di Successo
Codice: 201 Created
{
"data": {
"id": 123,
"ip_address": "192.168.0.1",
"subject_id": "utente@example.com",
"proofs": [
{
"type": "screenshot",
"value": "stringabase64"
}
],
"legal_notices": ["privacy_policy", "terms_of_service"],
"consent_data": "{\"newsletter\": true, \"promotions\": false}",
"subject_data": "{\"email\": \"utente@example.com\", \"name\": \"Mario Rossi\"}"
}
}
Risposta di Errore
Codice: 400 Bad Request
se i campi richiesti sono mancanti o non validi.
Codice: 404 Not Found
se il webspace con l'ID specificato non esiste.
Leggere i consensi su uno spazio web
GET /webspaces/:id/consents
Parametri di route
id
(integer, obbligatorio): l'identificativo dello spazio web da cui leggere i consensi.
Parametri in query string
limit
(integer, facoltativo): Il numero massimo di consensi da restituire. Il valore predefinito è 15.
orderBy
(stringa, facoltativo): Campo su cui ordinare i risultati. Il valore predefinito è id.
orderType
(stringa, facoltativo): Tipo di ordinamento, può essere asc o desc. Il valore predefinito è asc.
page
(integer, facoltativo): Numero di pagina per la paginazione.
startdate
(data, facoltativo): Data di inizio per filtrare i consensi in base alla data di creazione.
enddate
(data, facoltativo): Data di fine per filtrare i consensi in base alla data di creazione.
subject_id
: l'identificativo del soggetto di cui si vuole leggere i consensi.
Esempio di richiesta:
/v2/webspaces/1/consents?limit=10&orderBy=created_at&orderType=desc&startdate=2023-01-01&enddate=2023-12-31&subject_id=utente@example.com
Risposta di Successo
Codice: 200 OK
{
"data": [
{
"id": 123,
"ip_address": "192.168.0.1",
"subject_id": "utente@example.com",
"created_at": "2023-01-15T10:00:00Z",
"legal_notices": ["privacy_policy", "terms_of_service"],
"consent_data": "{\"newsletter\": true, \"promotions\": false}",
"subject_data": "{\"email\": \"utente@example.com\", \"name\": \"Mario Rossi\"}"
},
{
"id": 124,
"ip_address": "192.168.0.2",
"subject_id": "altroutente@example.com",
"created_at": "2023-02-10T12:30:00Z",
"legal_notices": ["terms_of_service"],
"consent_data": "{\"newsletter\": false, \"promotions\": true}",
"subject_data": "{\"email\": \"altroutente@example.com\", \"name\": \"Giovanna Bianchi\"}"
}
],
"meta": {
"current_page": 1,
"per_page": 10,
"total": 2
}
}
Risposta di Errore
Codice: 400 Bad Request
se i parametri della query sono non validi.
Codice: 404 Not Found
se non vengono trovati consensi che corrispondono ai criteri.