Emissione - API ex-ante/direct
Le API correnti permettono di emettere un certificato in modalità ex-ante/direct:direct quindivuol dire, come già detto, che occorre fornire in fase di emissione tutte le info relative all'identificazione del titolare e tutti i dati necessari per emettere il certificato.
Chiamata di apertura richiesta di certificato
Per aprire una richiesta di certificato occorre chiamare il servizio:
Il servizio può essere invocato solo con un token TSID di tipo API: operando quindi all'interno di un determinato cliente.
Nella chiamata occorre passare diverse informazioni:
{
"profileName": "string",
"rao": {
"certificateAlias": "string",
"alias": "string"
},
"organization": {
"name": "string",
"unit": "string",
"identifier": "string",
"country": "string",
"email": "string",
"processApplication": "string",
"responsibleDocument": "string",
"responsiblePosition": "string"
},
"owner": {
"alias": "string",
"firstName": "string",
"lastName": "string",
"sex": "string",
"birthCity": "string",
"birthCountry": "string",
"birthDate": "2023-07-02",
"birthDistrict": "string",
"city": "string",
"country": "string",
"district": "string",
"cap": "string",
"address": "string",
"email": "string",
"phone": "string",
"pec": "string",
"fiscalCode": "string",
"document": {
"issuer": "string",
"country": "string",
"number": "string",
"releaseDate": "2023-07-02",
"expiryDate": "2023-07-02",
"type": "IDC"
}
}
}
- profileName è il nome del profilo di emissione. Contiene tutte le informazioni relative al tipo di certificato, all'identificazione richiesta, alla durata, al fatto che richieda o meno un pin etc...
- rao è il Registration Authority Officer, cioè la persona che si assume la responsabilità di emettere il certificato. Normalmente è un rappresentate del cliente. E' necessatio fornire il suo alias(identificativo), mentre l'alias del certificato è opzionale. Ha senso solo se il RAO ha più di un certificato associato.
- owner è il titolare del certificato
- organization è l'organizzazione (azienda) per la quale il titolare lavora/opera.
Il servizio esegue una validazione molto stringente dei valori forniti:
| nome | obbligatorio | regex | condizioni | dipendenze |
| owner.firstName | x | [\w\s]{1,128} | ||
| owner.lastName | x | [\w\s]{1,128} | ||
| owner.sex | x | [FMfm]{1} | ||
| owner.birthCity | x | |||
| owner.birthCountry | x | iso alpha 2 | ||
| owner.birthdate | x | yyyy-MM-dd | >=18 && <=120 anni | |
| owner.birthDistrict | x | |||
| owner.city | x | |||
| owner.country | x | iso alpha 2 | ||
| owner.district | x | |||
| owner.cap | x | [0-9]{3,10} | ||
| owner.address | x | [\w\s]{1,128} | ||
| owner.email | x | mail valida | ||
| owner.pec | mail valida | |||
| owner.phone | x | [+0-9]{8,15} | ||
| owner.fiscalNumber | codice fiscale valido e ricavabile dai valori precedenti | |||
| document.issuer | x | [\w\s]{1,128} | ||
| document.country | x | iso alpha 2 | ||
| document.number | x | si applicano reg exp relative al tipo di documento | ||
| document.releaseDate | x | yyyy-MM-dd | <=oggi | |
| document.expiryDate | x | yyyy-MM-dd | >oggi | |
| document.type | x | IDC|PAS|DLC|NLC|PBO|TPL|GUL|IDB | Se fiscalNumber non fornito il type potrà essere solo PAS | |
| organization.name | x | [\w\s]{1,128} | obbligatorio solo per certificati di tipo SEAL | |
| organization.unit | [\w\s]{1,128} | |||
| organization.identifier | x | [\w\s]{1,128} | obbligatorio solo per certificati di tipo SEAL | |
| organization.country | x | iso alpha 2 | obbligatorio solo per certificati di tipo SEAL | |
| organization.email | x | mail valida | obbligatorio solo per certificati di tipo SEAL | |
| organization.processApplication | x | [\w\s]{1,128} | obbligatorio solo per certificati di tipo SEAL | |
| organization.responsibleDocument | ||||
| organization.responsiblePosition | [\w\s]{1,128} |
In risposta il servizio ritorna:
{
"requestId": "64a0895e8620872ba1be33e7",
"document": "JVBERi0xLjYNJeLjz9MNCjQ5NiAwIG9iag0.......2SBV65FF6ic7HWtBZlDsR5T5FuYsFKZgHdlWwD/Rc8BLt/wGjScohDQplbmRzdHJlYW0KZW5kb2JqCnN0YXJ0eHJlZgoyNzg1NTMKJSVFT0YK".
"ownerAlias": "TINIT-CSRGGL44L13H501E"
}
- requestId è l'id della richiesta appena aperta
- document è il pdf del modulo di richiesta opportunamente fillato in base 64. Tale modulo deve essere preso in visione dal
titolare
Chiamata di completamento richiesta di certificato
Per completare una richiesta di certificato occorre chiamare il servizio:
Completamento richiesta ex-ante
Il servizio può essere invocato solo con un token TSID di tipo API dello stesso cliente che ha aperto la richiesta.
Nella chiamata occorre passare diverse informazioni:
{
"rao": {
"certificatePin": "12345678"
},
"identificationDocs": {
},
"extra": {
"pin": "12345678"
},
"webhook": {
"url": "callback_url"
}
}
- rao.certificatePin è pin del certificato del RAO utilizzato per emettere il certificato
- extra.pin è pin che si vuole associare al certificato che si sta emettendo. Ammesso che il certificato necessit di un pin.
- webhook.url è l'url del webhook che il servizio invocherà per comunicare l'esito dell'operazione. Infatti il servizio in questione è asincrono.
- identificationDocs è la sezione che contiene i documenti di identificazione del
titolaretitolare. Esistono due modi per fornire i documenti e si rimanda alla sezione relativa
Il servizio, in quanto, asincrono, ritorna un 202 per segnalare la presa in carico dell'operazione.
Ad emissione completata, il servizio avrò cura di:
Modalità di caricamento dei documenti di identificazione
sdfsdffsd
titolare.