Creazione/Modifica di una sessione di riconoscimento Prerequisiti L'avviamento di una sessione di riconoscimento è sottoposto a dei prerequisiti di licenza che variano a seconda della tipologia di riconoscimento selezionata e dalla tipologia di entità che deve ricevere l'identità. Identità per persone fisiche ad uso privato Nel caso di identità SPID destinate a persone fisiche per uso privato, l'avvio di una sessione di riconoscimento è completamente gratuita. Non ci sono vincoli su item, licenze o servizi attivi, e non vengono registrati consumi sui servizi di metering.  L'unico requisito richiesto per l'avvio della procedura è quindi un token utente TSDigital valido al quale sia associato almeno un item. Identità per persone fisiche ad uso professionale o persone giuridiche Nel caso di identità SPID per persone fisiche (ad uso professionale) o per persone giuridiche, è richiesto che l'utente che avvia la richiesta stia operando per un item che abbia acquistato il servizio SPID. Ogni pacchetto del servizio include un certo numero di slot SPID, i quali vengono consumati con ogni richiesta avviata. Nel caso in cui una richiesta venga annullata prima che venga portato avanti il data entry aggiuntivo richiesto, lo slot viene liberato ed è liberamente riutilizzabile. Riconoscimento Video In aggiunta a quanto detto sopra, per effettuare un riconoscimento video è necessario che l'item effettui l'acquisto di un pacchetto aggiuntivo che gli fornisca degli slot SPID Video. Ogni riconoscimento video avviato consuma sia uno slot regolare che uno slot video. Come nel caso degli altri tipi di riconoscimento, se la richiesta viene annullata prima di essere portata avanti, lo slot viene liberato ed è liberamente riutilizzabile. Permessi L'utente deve avere il permesso SPID:itemId:* o superiore per poter avviare una richiesta. Alle utenze personali o tecniche non è permesso creare richieste di riconoscimento SPID che non siano legate ad un item. API L'avvio di una sessione di riconoscimento viene effettuato tramite la seguente API: [POST] /api/v1/spid Header Gli header richiesti dalla chiamata sono gli header standard di TSDigital. Il Content-Type deve essere  application/json Body Il body della richiesta è un JSON con il seguente formato (i parametri sottolineati sono obbligatori): { "itemId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "name": "Mario", "surname": "Rossi", "taxId": "RSSMRA80A01I829Y", "email": "mario.rossi@agyo.io", "phoneNumber": "0342424242", "channels": { "cie": true, "cns": true, "feq": true, "video": true, "rao": true }, "spidType": "INDIVIDUAL", "spidLevel": "SPID_LEVEL_1", "raoId": "159bc2f6-2b55-4dcc-abcd-7929e56d3bb7", "sendNotification": false } itemId: l'identificativo anagrafico univoco dell'item che sta effettuando la richiesta ed è una stringa in formato UUIDV4 name: nome della persona per la quale sta venendo inizializzata la sessione surname: cognome della persona per la quale sta venendo inizializzata la sessione taxId: codice fiscale della persona per la quale sta venendo inizializzata la sessione email: email di contatto della persona per la quale sta venendo inizializzata la sessione phoneNumber: numero di telefono della persona per la quale sta venendo inizializzata la sessione channels: canali di riconoscimento da rendere disponibili per il riconoscimento spidType: tipologia di SPID, ha i seguenti valori: INDIVIDUAL: SPID per persona fisica, uso privato PROFESSIONAL_INDIVIDUAL: SPID per persona fisica, uso professionale LEGAL_ENTITY: SPID per persona giuridica, uso privato PROFESSIONAL_LEGAL_ENTITY: SPID per persona giuridica, uso professionale spidLevel: livello di sicurezza dell'identità SPID richiesta. Attualmente, sono disponibili i livelli 1 e 2 raoId: identificativo anagrafico univoco di un RAO. Obbligatorio nel caso in cui sia stato selezionato il canale rao, ignorato altrimenti sendNotification: se impostato a false, disabilita l'invio dell'email contenente il link di sessione. In questo caso, sta all'applicativo chiamante fornire correttamente all'utente il link per poter proseguire con l'identificazione. Il link inviato ha una valenza di 24h. Risposte Successo In caso di successo, l'API risponde con il codice HTTP 200 e con il seguente body: { "itemId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "spidId": "10aa555a-4ef4-41ca-b2ee-d07fac773898", "taxId": "RSSMRA80A01I829Y", "sessionLink": "http://example-link.agyo.io/spid-session" } itemId/taxId: echo dei valori passati in ingresso spidId: identificativo univoco della richiesta all'interno di Digital, utilizzabile per effettuare operazioni di lettura/scrittura specifiche sessionLink: link utilizzabile per iniziare il processo di riconoscimento. Corrisponde al link inviato tramite email se sendNotification è true. Il link ha una valenza di 24h. Non viene generato in caso di riconoscimento RAO. Errore In caso di errore, l'API risponde con un body JSON avente il seguente formato: { "code": "string", "timestamp": "2022-04-13T13:35:16.678Z", "message": "string", "subErrors": [ {} ] } code: rappresentazione sotto forma di stringa del codice d'errore HTTP. Coincide con l'errore HTTP ritornato tiemstamp: data e ora della risposta, espresso sotto forma di stringa message: messaggio che esprime l'errore Gli errori possibili sono: 400: la richiesta è malformata (parametri con formato errato, parametri invalidi o inconsistenti fra loro) 401: non è stato fornito un token autorizzativo o il token autorizzativo fornito non è valido (es: è scaduto) 403: il token fornito è valido, ma l'utente non è autorizzato ad effettuare l'operazione 409: il codice fiscale specificato è già associato ad un'altra richiesta in corso, oppure l'item non ha il servizio SPID attivo 500: si è verificato un errore inaspettato 502: si è verificato un errore inaspettato nella comunicazione con altri servizi Modifica di una richiesta Fintanto che la sessione di riconoscimento non è stata avviata, è possibile modificarne i parametri rieffettuando la chiamata di creazione. Nel caso di SPID che prevedono consumi, non verranno bloccati slot aggiuntivi. Il link di avvio sessione inviato al momento della creazione/ultima modifica viene invalidato e ne viene generato uno nuovo, con valenza di 24h dalla data della modifica.