# Signer Write

API di scrittura per *Ts Digital Signature per le operazioni riguardanti i firmatari e i certificati.* [Swagger](https://ts-signer-write-api-test.agyo.io/api/swagger-ui.html#/)

#### Header

Gli header richiesti dalla chiamata sono gli [header standard di TSDigital](https://digital-docs.ts-paas.com/books/integrazione-e-utilizzo-api-tsdigital/page/linee-guida-generali-api-ts-digital "Linee guida Generali API TS-Digital").

Il `Content-Type` deve essere `application/json`

<span style="color: #ff0000;">**In tutte le chiamate dove è richiesto ServiceName non impostare nulla a meno che si vuole utilizzare le api per il servizio adempimenti.** </span>

#### Descrizione API

---

##### **V2 - SIGNER**

---

**Create a new signer**

<p class="callout info">[<span class="opblock-summary-method">\[POST\] </span><span class="opblock-summary-path" data-path="/v2/rest/signer">​/v2​/rest​/signer</span>](https://ts-signer-write-api-test.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v2%20-%20Signer/create)</p>

Permette la creazione di un firmatario per una determinata azienda

\*1 campo obbligatorio  
\*2 campo obbligatorio in caso si voglia richiedere un certificato di FEQ automatica o di FEQ remota

**Info**

- `firstName` \*1, nome.
- `lastName` \*1, cognome.
- `fiscalCode` \*1, in caso si tratti di un firmatario italiano(dispone di codice fiscale, solamente questi firmatari possono richiedere un certificato di FEQ automatica o di FEQ remota). In caso il firmatario non abbia un codice fiscale il campo non deve essere compilato perchè verrà generato un UUID come id del firmatario. In caso di firmatario italiano viene fatto un controllo sulla lunghezza di 16 caratteri.
- `itemId` \*1, codice fiscale dell'azienda.
- `fiscalCountry` domicilio fiscale, se valorizzato viene fatto un controllo che il valore sia [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Il valore di default da inserire è **"IT"**, in caso il firmatario è sprovvisto di codice fiscale il valore non può essere **"IT".**
- `sex` \*1, viene fatto un controllo che il valore sia **"M"** o **"F"**.
- `birthCity` \*1 città di nascita.
- `birthDate` \*1, data di nascita.
- `birthCountry` se valorizzato viene fatto un controllo che il valore sia [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
- `birthDistrict` provincia di nascita, in caso di nascita all'estero il valore da passare è **"EE"**. In caso di provincia italiana si deve usare la sigla da 2 cifre.
- `city` città di residenza.
- `country` nazione di residenza, se valorizzato viene fatto un controllo che il valore sia [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
- `district` <span style="text-decoration: underline; color: #ff0000;">-&gt; campo non usato, verrà dismesso<span style="color: #000000;">.</span></span>
- `cap` cap di residenza, se valorizzato viene fatto un controllo che il valore sia di 5 caratteri e che contenga solo numeri.
- `address` indirizzo di residenza.
- `email` \*1 indirizzo email.
- `prefixCellNumber` prefisso numero di telefono, se non valorizzato il valore di default sarà **"+39"**, per richiedere una FEQ automatica o di FEQ remota il prefisso non può essere diverso da **"+39"**. //TODO
- `cellNumber` \*1, numero di telefono personale, solo numeri.
- `documentIssuer` \*2,<sup> </sup> ente che ha rilasciato il documento.
- `documentNumber` \*2, numero del documento.
- `documentEndDate` \*2, data di scadenza del documento.
- `documentType`​ \*2, può assumere questi determinati valori: 
    - **"Carta d'identità"**
    - <div><div>**"Patente di guida"**</div></div>
    - <div><div>**"Passaporto"**</div></div>
    - <div><div>**"Porto d'armi"**</div></div>
    - <div><div>**"Tessera di riconoscimento postale"**</div></div>
    - <div><div>**"Tessera rilasciata da PA"**</div></div>

- `ownerTaxId` codice fiscale dell'azienda su cui il firmatario e stato assegnato .
- `ownerVatNumber` partita iva dell'azienda su cui il firmatario e stato assegnato .
- `ownerDescription` ragione sociale dell'azienda su cui il firmatario e stato assegnato .
- <span style="color: #ff0000;">`serviceName` controllare le info su questo campo in cima al documento</span><span style="color: #000000;">.</span>

```JSON
{
  "firstName": "string", *
  "lastName": "string", *
  "fiscalCode": "string", *
  "itemId": "string", * 
  "fiscalCountry": "string", *
  "sex": "string", *
  "birthCity": "string", *
  "birthCountry": "string",*
  "birthDate": "2021-02-12T14:53:00.676Z", *
  "birthDistrict": "string",
  "city": "string",
  "country": "string",
  "district": "string",
  "cap": "string",
  "address": "string",
  "email": "string", *
  "documentIssuer": "string",
  "documentNumber": "string",
  "documentEndDate": "2021-02-12T14:53:00.676Z",
  "documentType": "string",
  "cellNumber": "string", *
  "ownerTaxId": "string",
  "ownerVatNumber": "string",
  "ownerDescription": "string",
  "serviceName": "A-FISCALI-IVA-FLOW" *
}
```

<div data-lang="body-param__example microlight" id="bkmrk-response"><div><div>[Esempi FES](https://digital-docs.ts-paas.com/books/signature/page/signer-write#bkmrk-create-signer-fes)</div><div>[Esempi FEA](https://digital-docs.ts-paas.com/books/signature/page/signer-write#bkmrk-create-signer-fea)</div></div><div>[Esempi FEQ](https://digital-docs.ts-paas.com/books/signature/page/signer-write#bkmrk-create-signer-feq)  
</div><div>  
</div><div>**Response**</div></div><div data-lang="example microlight" id="bkmrk-%7B-%22signerid%22%3A-0%2C-%22it"><textarea style="display: none;">{ "signerId": 0, "itemId": "string", "fiscalCode": "string" }</textarea><div><div>  
</div><div><div>  
</div></div></div></div>```
{
  "signerId": 0,
  "itemId": "string",
  "fiscalCode": "string"
}
```

---

**Disable an existent signer and disable all certificates**

<p class="callout info">[\[DELETE\] /v2/rest/signer/{signerId}](https://ts-signer-write-api-test.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v2%20-%20Signer/delete)</p>

Permette di eliminare un determinato firmatario. Oltre a cancellare il firmatario verranno eliminate le extraSignature(FES/FEA) e i certificati collegati al firmatario(FRM/FSM). La cancellazione è solamente logica, verrà impostato `enabled=false`. In caso si provi a ricreare il firmatario con lo stesso codice fiscale verrà chiamata in automatico l'API **Update an existent signer,** il firmatario verrà riattivato e in caso aggiornate le properties

**Info**

- `signerId` identificativo del firmatario
- <span style="color: #ff0000;">`serviceName` controllare le info su questo campo in cima al documento</span>

---

**Update an existent signer**

<p class="callout info">[<span class="opblock-summary-method">\[PATCH\]</span><span class="opblock-summary-path" data-path="/v2/rest/signer/{signerId}">​/v2​/rest​/signer​/{signerId}</span>](https://ts-signer-write-api-test.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v2%20-%20Signer/update)</p>

Permette di aggiornare i dati di un firmatario

\*1 campo obbligatorio

**Info**

- `itemId` \*1 identificativo dell'azienda. Non può essere cambiato quindi deve avere lo stesso valore di quando il firmatario è stato creato
- `city` città di residenza.
- `country` nazione di residenza, se valorizzato viene fatto un controllo che il valore sia [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
- `district` <span style="text-decoration: underline; color: #ff0000;">-&gt; campo non usato, verrà dismesso<span style="color: #000000;">.</span></span>
- `cap` cap di residenza, se valorizzato viene fatto un controllo che il valore sia di 5 caratteri e che contenga solo numeri.
- `address` indirizzo di residenza.
- `email` indirizzo email.
- `prefixCellNumber` prefisso numero di telefono, se non valorizzato il valore di default sarà **"+39"**, per richiedere una FEQ automatica o di FEQ remota il prefisso non può essere diverso da **"+39"**. //TODO
- `cellNumber` numero di telefono personale, solo numeri.
- `documentIssuer` <sup> </sup>ente che ha rilasciato il documento
- `documentNumber` numero del documento
- `documentEndDate` data di scadenza del documento
- `documentType`​ può assumere questi determinati valori: 
    - **"Carta d'identità"**
    - <div><div>**"Patente di guida"**</div></div>
    - <div><div>**"Passaporto"**</div></div>
    - <div><div>**"Porto d'armi"**</div></div>
    - <div><div>**"Tessera di riconoscimento postale"**</div></div>
    - <div><div>**"Tessera rilasciata da PA"** </div></div>
- `ownerTaxId` codice fiscale dell'azienda su cui il firmatario e stato assegnato
- `ownerVatNumber` partita iva dell'azienda su cui il firmatario e stato assegnato
- `ownerDescription` ragione sociale dell'azienda su cui il firmatario e stato assegnato
- <span style="color: #ff0000;">`serviceName` controllare le info su questo campo in cima al documento</span>

```JSON
{
  "itemId": "string",
  "city": "string",
  "district": "string",
  "cap": "string",
  "address": "string",
  "email": "string",
  "documentIssuer": "string",
  "documentNumber": "string",
  "documentEndDate": "2021-02-12T15:30:23.713Z",
  "documentType": "string",
  "cellNumber": "string",
  "ownerTaxId": "string",
  "ownerVatNumber": "string",
  "ownerDescription": "string"
}
```

---

##### **V2 - ENROLLMENT**

---

**Start enrollment for a signer**

<p class="callout info">[<span class="opblock-summary-method">\[POST\] </span><span class="opblock-summary-path" data-path="/v2/rest/signer">​/v2​/rest​/enrollment/start</span>](https://ts-signer-write-api-test.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v2%20-%20Signer/create)</p>

Permette diinizializzare una sessione di enrollment per creare un certificato.

\*1 campo obbligatorio

**Info**

- `signerId` \*1 identificativo del firmatario.
- `profile` \*1 può assumere questi determinati valori: 
    - **"<span class="ui-provider a b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak" dir="ltr">teamsystemTriennale</span>"**
    - <div><div>**"<span class="ui-provider a b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak" dir="ltr">teamsystemAuto</span>"**</div></div>
    - <div><div>**"<span class="ui-provider a b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak" dir="ltr">teamsystemOneshot</span>"**</div></div>
- `identificationProcesses` array che definisce la modalità di riconoscimento, può avere dentro questi valori: 
    - **"<span class="ui-provider a b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak" dir="ltr">FEQ</span>"**
    - <div><div>**"<span class="ui-provider a b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak" dir="ltr">SPID</span>"**</div></div>
- `owner` \*1 contiene le informazioni del firmatario.
- `owner.firstname`\*1.
- `owner.lastName`\*1.
- `owner.email`\*1.
- `owner.phoneNumber`\*1.
- `owner.fiscalCode`
- `webhook` \*1 informazioni sul webhook da richiamare in fase di enrollment
- `webhook.url` \*1 url da richiamare deve essere l'URL della signer-write/v2/rest/enrollment/callback a cui va aggiunto come parametro di query: 
    - **"<span class="ui-provider a b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak" dir="ltr">signerId</span>"** \*1 identificativo del firmatario

```JSON
[
  {
    "signerId": "long",
    "profile": "string",
    "identificationProcesses": "string[]",
    "owner": {
      "firstName": "string",
      "lastName": "string",
      "email": "string",
      "phoneNumber": "string",
      "fiscalCode": "string"
    },
    "webhook": {
      "url": "string"
    }
  }
]
```


<div data-lang="body-param__example microlight" id="bkmrk-response-1"><div><div>  
</div></div><div>**Response**</div></div><div data-lang="example microlight" id="bkmrk-%7B-%22signerid%22%3A-0%2C-%22it-2"><textarea style="display: none;">{ "signerId": 0, "itemId": "string", "fiscalCode": "string" }</textarea><div><div><div>  
</div></div></div></div>```
[
  {
    "sessionId": "string"
  }
]
```

---

**Delete existing enrollment session**

<p class="callout info">[<span class="opblock-summary-method">\[DELETE\]</span><span class="opblock-summary-path" data-path="/v2/rest/signer/{signerId}">​/v2​/rest​/enrollment/session​/{sessionId}</span>](https://ts-signer-write-api-test.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v2%20-%20Signer/update)</p>

Permette di cancellare la sessione di enrollment

\*1 campo obbligatorio

**Info**

- `sessionId` identificativo della sessione di enrollment

---

**Resend enrollment email**

<p class="callout info">[<span class="opblock-summary-method">\[PUT\]</span><span class="opblock-summary-path" data-path="/v2/rest/signer/{signerId}">​/v2​/rest​/enrollment/session​/{sessionId}/email/send</span>](https://ts-signer-write-api-test.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v2%20-%20Signer/update)</p>

Permette di reinviare la mail di inizio enrollment

\*1 campo obbligatorio

**Info**

- `sessionId` identificativo della sessione di enrollment

---


##### **V2 - EXTRA SIGNATURE**

---

**Activate FES**

<p class="callout info">[<span class="opblock-summary-method">\[POST\] </span><span class="opblock-summary-path" data-path="/v2/rest/extraSignature/fes/{signerId}">​/v2​/rest​/extraSignature​/fes​/{signerId}</span>](https://digital-docs.ts-paas.com/v2/rest/extraSignature/fes/%7BsignerId%7D)</p>

Permette di attivare la tipologia la FES (firma elettronica semplice) ad un determinato firmatario.

**Info**

- `signerId` identificativo del firmatario

---

**<span class="opblock-summary-method">I</span><span class="opblock-summary-method">nitialize FEA</span>**

<p class="callout info">[<span class="opblock-summary-method">\[POST\] </span><span class="opblock-summary-path" data-path="/v2/rest/extraSignature/fea">​/v2​/rest​/extraSignature​/fea</span>](https://ts-signer-write-api-dev.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v2%20-%20Extra%20Signature/createFea)</p>

Permette di effettuare l'adesione FEA (firma elettronica avanzata) per un determinato firmatario. Il processo di attivazione sarà completato solamente una volta firmato il documento che verrà in automatico generato e mandato in firma

**Info**

- `signerId` identificativo del firmatario
- `transmitterId` identificativo dell'azienda
- `imagesContent` base64 delle immagini o pdf del documento del firmatario e del codice fiscale.   
    Da inserire se non sono ancora stati conservati le copie di questi documenti.   
    I file dei documenti possono essere `.pdf., .jpg, .jpeg, .jpe, .png, .tiff, .tif`<div><div>Ricordarsi di inserire il mime type del formato, esempio: data:image/jpg;base64,/</div></div>
- `documentSignType` metodo con cui verrà firmato il documento. I valori possibili possono essere **FEA remota** o **`FEA grafometrica`**
- `mainSignerId` codice fiscale del firmatario possessore di un certificato di Firma elettronica qualificata automatica(FRM) che sigillerà il documento
- `useOtp` valore da mettere a **true** solamente se documentSignType è **FEA remota.** Questo permetterà di utilizzare come strumento di autenticazione del modulo di richiesta per la FEA tramite otp e non SecureCall
- `paperSignature` permette di avere un adesione FEA cartacea, significa che viene scaricato sul cliente l'obbligo di conservare una copia cartacea dell'adesione FEA del firmatario. Se impostato a **true** permette di ricevere come response della chiamata il base64 del modulo di richiesta per la FEA e verrà attivata automaticamente senza firmare il modulo. se si vuole usare `onlyUpload=true` il valore deve essere impostato a **false**
- <div><div>`onlyUpload` se impostato a **true** permette di firmare l'adesione FEA insieme al caricamento del primo documento.   
    **<span style="color: #ff0000;">NOTA BENE</span>**, il primo documento che si caricherà per questo firmatario dovrà avere lo stesso `mainSignerId` e la stessa tipologia di firma e lo stesso strumento di autenticazione per essere valida. Inoltre fino a quando il firmatario non firmerà il primo documento non potrà sottoscriverne altri. Se invece viene impostato a **false** verra creata una sessione solo per la firma dell'adesione FEA. </div></div>
- `itemData` dati riguardanti all'azienda a cui fa capo il firmatario
- `itemData.id`
- `itemData.vatNumber`
- `itemData.city`
- `itemData.fullAddress`
- `itemData.description`
- `itemData.address`
- `itemData.itemCellNumber`
- `itemData.itemEmail`
- `itemData.policyNumber`
- `itemData.webSite`

```JSON
{
  "transmitterId": "string",
  "imagesContent": [
    "string"
  ],
  "signerId": 0,
  "documentSignType": "string",
  "mainSignerId": "string",
  "itemData": {
    "id": "string",
    "vatNumber": "string",
    "city": "string",
    "fullAddress": "string",
    "description": "string",
    "address": "string",
    "itemCellNumber": "string",
    "itemEmail": "string",
    "policyNumber": "string",
    "webSite": "string"
  },
  "useOtp": true,
  "paperSignature": true
}
```

[Esempio](https://digital-docs.ts-paas.com/books/signature/page/signer-write#bkmrk-extra-signature-fea)

---

**Delete Extra Signature**

<p class="callout info">[<span class="opblock-summary-method">\[DELETE\] </span><span class="opblock-summary-path" data-path="/v2/rest/extraSignature/{extraSignatureId}">​/v2​/rest​/extraSignature​/{extraSignatureId}</span>](https://ts-signer-write-api-dev.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v2%20-%20Extra%20Signature/extraSignatureId)</p>

Permette di eliminare le extraSignature (FEA, FES) di un determinato firmatario.

**Info**

- `signerId` identificativo del firmatario
- `extraSignatureId` identificativo della FES o FEA collegate ad un firmatario

---

##### **V2 - CERTIFICATE**

---

**Un assign certificate to signer**

<p class="callout info">[\[POST\] ​/v2​/rest​/certificate​/{certificateId}​/unAssignTo​/{signerId}](https://ts-signer-write-api-test.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v2%20-%20Certificate/unAssign)</p>

<span style="background-color: #ffffff; color: #444444;"><span style="color: #ff0000;">**Sostituisce le API v1 <span class="opblock-summary-path">/v1/rest/certificate/frm/unassign-certificate</span><span class="opblock-summary-path"> e /v1/rest/certificate/fsm/unassign-certificate</span>**</span></span>

<span style="background-color: #ffffff; color: #444444;">Scollega un certificato da un firmatario</span>

**<span style="background-color: #ffffff; color: #444444;">Info</span>**

- `signerId` identificativo del firmatario
- `certificateId` identificativo del certificato
- <span style="color: #ff0000;">`serviceName` controllare le info su questo campo in cima al documento</span>

---

**<span class="opblock-summary-method">Send submit request to Trust to start certificate validation</span>**

<p class="callout info">[<span class="opblock-summary-method">\[POST\] </span><span class="opblock-summary-path" data-path="/v2/rest/certificate/{certificateId}/send">​/v2​/rest​/certificate​/{certificateId}​/send</span>](https://ts-signer-write-api-test.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v2%20-%20Certificate/send)</p>

<span style="color: #ff0000;">**Sostituisce le API v1 <span class="opblock-summary-path">/v1/rest/certificate/fsm/ca/submit e /v1/rest/certificate/frm/ca/submit</span>**</span>

Permette di finalizzare le richieste dei certificati di Firma elettronica qualificata remota/Firma elettronica qualificata automatica(FSM/FRM) mandate alla CA

**Info**

- `signerId` identificativo del firmatario
- `certificateId` identificativo del certificato che viene staccato durante la richiesta di inizializzazione
- `file` base64 del file pdf di richiesta pre compilato e firmato pades
- <span style="color: #ff0000;">`serviceName` controllare le info su questo campo in cima al documento</span>

```JavaScript
{
  "signerId": 0,
  "certificateId": 0,
  "file": "string",
  "serviceName": "SIGNATURE-FLOW"
}
```

---

**<span class="opblock-summary-method">Assign certificate to signer</span>**

<p class="callout info">[<span class="opblock-summary-method">\[POST\]</span><span class="opblock-summary-path" data-path="/v2/rest/certificate/{certificateId}/assignTo/{signerId}"> ​/v2​/rest​/certificate​/{certificateId}​/assignTo​/{signerId}</span>](https://ts-signer-write-api-test.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v2%20-%20Certificate/assign)</p>

<span style="color: #ff0000;">**Sostituisce le API v1 <span class="opblock-summary-path">/v1/rest/certificate/frm/assign-certificate</span><span class="opblock-summary-path"> e /v1/rest/certificate/fsm/assign-certificate</span>**</span>

<span style="background-color: #ffffff; color: #444444;">Permette di assegnare ad un firmatario un certificato già creato in precedenza da un altra azienda. </span>

<div id="bkmrk-nome-cognome-codice-"><div><div><table border="1" style="border-collapse: collapse; width: 100.741%; height: 121px;"><tbody><tr style="height: 29px;"><td style="width: 16.6667%; height: 29px;">Nome</td><td style="width: 11.605%; height: 29px;">Cognome</td><td style="width: 28.642%; height: 29px;">Codice fiscale</td><td style="width: 24.4445%; height: 29px;">ItemId</td><td style="width: 16.6667%; height: 29px;">CertificateId</td><td style="width: 3.82716%; height: 29px;"> </td></tr><tr style="height: 29px;"><td style="width: 16.6667%; height: 29px;">Utente1</td><td style="width: 11.605%; height: 29px;">Utente1</td><td style="width: 28.642%; height: 29px;">CF1</td><td style="width: 24.4445%; height: 29px;">ITEM1</td><td style="width: 16.6667%; height: 29px;">CERT1</td><td style="width: 3.82716%; height: 29px;"> </td></tr><tr style="height: 29px;"><td style="width: 16.6667%; height: 29px;">Utente1</td><td style="width: 11.605%; height: 29px;">Utente1</td><td style="width: 28.642%; height: 29px;">CF1</td><td style="width: 24.4445%; height: 29px;">ITEM2</td><td style="width: 16.6667%; height: 29px;"> </td><td style="width: 3.82716%; height: 29px;"> </td></tr></tbody></table>

l'api si occupa di collegare il certificato se il firmatario è lo stesso ma per diverse aziende</div><div><table border="1" style="border-collapse: collapse; width: 100.741%; height: 121px;"><tbody><tr style="height: 29px;"><td style="width: 16.6667%; height: 29px;">Nome</td><td style="width: 11.605%; height: 29px;">Cognome</td><td style="width: 28.642%; height: 29px;">Codice fiscale</td><td style="width: 24.4445%; height: 29px;">ItemId</td><td style="width: 19.2593%; height: 29px;">CertificateId</td><td style="width: 1.23457%; height: 29px;"> </td></tr><tr style="height: 29px;"><td style="width: 16.6667%; height: 29px;">Utente1</td><td style="width: 11.605%; height: 29px;">Utente1</td><td style="width: 28.642%; height: 29px;">CF1</td><td style="width: 24.4445%; height: 29px;">ITEM1</td><td style="width: 19.2593%; height: 29px;">CERT1</td><td style="width: 1.23457%; height: 29px;"> </td></tr><tr style="height: 29px;"><td style="width: 16.6667%; height: 29px;">Utente1</td><td style="width: 11.605%; height: 29px;">Utente1</td><td style="width: 28.642%; height: 29px;">CF1</td><td style="width: 24.4445%; height: 29px;">ITEM2</td><td style="width: 19.2593%; height: 29px;">CERT1</td><td style="width: 1.23457%; height: 29px;"> </td></tr></tbody></table>

</div></div></div>**<span style="background-color: #ffffff; color: #444444;">Info</span>**

- `signerId` identificativo del firmatario
- `certificateId` identificativo del certificato
- <span style="color: #ff0000;">`serviceName` controllare le info su questo campo in cima al documento</span>
- `itemId` identificativo dell'azienda
- `name` ragione sociale dell'azienda

```JSON
{
  "itemId": "string",
  "name": "string"
}

```

---

**<span class="opblock-summary-method">Initialize an remote Feq</span>**

<p class="callout info">[<span class="opblock-summary-method">\[POST\] </span><span class="opblock-summary-path" data-path="/v2/rest/certificate/fsm">​/v2​/rest​/certificate​/fsm</span>](https://ts-signer-write-api-test.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v2%20-%20Certificate/createFsm)</p>

<span style="color: #ff0000;">**Sostituisce API v1 /v1/rest/certificate/fsm/initialize**</span>

<div id="bkmrk-permette-di-iniziali">Permette di inizializzare la richiesta per il certificato FSM (Firma elettronica qualificata remota) che poi sarà mandata alla CA.</div><div id="bkmrk--17"></div><div id="bkmrk-info-11">**Info**</div>- `signerId` identificativo del firmatario
- `itemId` identificativo dell'azienda
- `identificationType` permette di specificare lo strumento di autenticazione che verrà utilizzato per il certificato di FEQ qualificata remota. I valori accettati sono **otp** o **SecureCall**. Se il parametro non viene specificato di default viene utilizzato **SecureCall**
- <span style="color: #ff0000;">`serviceName` controllare le info su questo campo in cima al documento</span>

```JSON
{
  "signerId": 0,
  "serviceName": "SIGNATURE-FLOW",
  "itemId": "string",
  "identificationType": "string"
}
```

---

**<span class="opblock-summary-method">Initialize an automatic Feq</span>**

<p class="callout info">[<span class="opblock-summary-method">\[POST\]</span><span class="opblock-summary-path" data-path="/v2/rest/certificate/frm"> ​/v2​/rest​/certificate​/frm</span>](https://ts-signer-write-api-test.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v2%20-%20Certificate/createFrm)</p>

<span style="color: #ff0000;">**Sostituisce API v1 /v1/rest/certificate/frm/initialize**</span>

<div id="bkmrk-permette-di-iniziali-0"><div><div>Permette di inizializzare la richiesta per il certificato FRM (Firma elettronica qualificata automatica) che poi sarà mandata alla CA.</div><div>  
</div><div>**Info**</div>- `signerId` identificativo del firmatario
- `itemId` identificativo dell'azienda
- `pin` valore di 8 cifre numeriche che serviranno come pin del certificato
- <span style="color: #ff0000;">`serviceName` controllare le info su questo campo in cima al documento</span>

</div></div>```JSON
{
  "signerId": 0,
  "serviceName": "SIGNATURE-FLOW", 
  "itemId": "string",
  "pin": "string"
}
```

---

**Migrate certificate**

<p class="callout info">[<span class="opblock-summary-method">\[POST\] </span><span class="opblock-summary-path" data-path="/v2/rest/signer">​/v2​/rest​/certificate/{certificateId}/migrate</span>](https://ts-signer-write-api-test.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v2%20-%20Signer/create)</p>

Permette di migrare un certificato da CA Trust a CA Teamsystem.

\*1 campo obbligatorio

**Info**

- `certificateId` \*1 identificativo del certificato.
- `signerId` \*1 identificativo del firmatario.
- `profile` \*1 può assumere questi determinati valori: 
    - **"<span class="ui-provider a b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak" dir="ltr">teamsystemTriennale</span>"**
    - <div><div>**"<span class="ui-provider a b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak" dir="ltr">teamsystemAuto</span>"**</div></div>
- `identificationProcesses` array che definisce la modalità di riconoscimento, può avere dentro questi valori: 
    - **"<span class="ui-provider a b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak" dir="ltr">FEQ</span>"**
- `owner` \*1 contiene le informazioni del firmatario.
- `owner.firstname`\*1.
- `owner.lastName`\*1.
- `owner.email`\*1.
- `owner.phoneNumber`\*1.
- `owner.fiscalCode`
- `webhook` \*1 informazioni sul webhook da richiamare in fase di enrollment
- `webhook.url` \*1 url da richiamare deve essere l'URL della signer-write/v2/rest/enrollment/callback a cui va aggiunto come parametro di query: 
    - **"<span class="ui-provider a b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak" dir="ltr">signerId</span>"** \*1 identificativo del firmatario

```JSON
{
  "signerId": "long",
  "profile": "string",
  "identificationProcesses": "string[]",
  "owner": {
    "firstName": "string",
    "lastName": "string",
    "email": "string",
    "phoneNumber": "string",
    "fiscalCode": "string"
  },
  "webhook": {
    "url": "string"
  }
}

```


<div data-lang="body-param__example microlight" id="bkmrk--22"><div>---

</div><div>  
</div></div>##### **V1**

---

**Create a new signer**

<p class="callout info">[<span role="presentation">\[POST\] <span class="opblock-summary-path">/v1/rest/signer</span></span>](https://ts-signer-write-api-test.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v1/createSigner)</p>

Permette la creazione di un firmatario per una determinata azienda

<span style="color: #ff0000;">**Da sostituire con la versione v2, tutte le info sulla request sono le medesime della v2** </span>

---

**Disable an existent signer and disable all certificates**

<p class="callout info">[<span class="opblock-summary-method">\[DELETE\] </span><span class="opblock-summary-path">/v1/rest/signer/{signerId}</span>](https://ts-signer-write-api-test.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v1/deleteSigner)</p>

<div id="bkmrk-da-sostituire-con-la-0"><div><span style="color: #ff0000;">**Da sostituire con la versione v2, tutte le info sulla request sono le medesime della v2**</span></div></div>---

**Update an existent signer**

<p class="callout info">[<span class="opblock-summary-method">\[PATCH\] </span><span class="opblock-summary-path">/v1/rest/signer/{signerId}</span>](https://ts-signer-write-api-test.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v1/updateSigner)</p>

<div id="bkmrk-da-sostituire-con-la-1"><span style="color: #ff0000;">**Da sostituire con la versione v2, tutte le info sulla request sono le medesime della v2**</span></div>---

**<span class="opblock-summary-method">Initialize FEA</span>**

<p class="callout info">[<span class="opblock-summary-method">\[POST\] </span><span class="opblock-summary-path">/v1/rest/extra-signature/create/fea</span>](https://ts-signer-write-api-test.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v1/createFea_1)</p>

<div id="bkmrk-da-sostituire-con-la-2"><div><span style="color: #ff0000;">**Da sostituire con la versione v2, tutte le info sulla request sono le medesime della v2**</span></div></div>---

**Activate FES**

<p class="callout info">[<span class="opblock-summary-method">\[POST\] </span><span class="opblock-summary-path">/v1/rest/extra-signature/create/fes</span>](https://ts-signer-write-api-test.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v1/createFes_1)</p>

<span class="opblock-summary-path"><span style="color: #ff0000;">**Da sostituire con la versione v2, tutte le info sulla request sono le medesime della v2** </span></span>

<div id="bkmrk-delete-extra-signatu-0">---

<div>**Delete Extra Signature**</div></div><div id="bkmrk--28"></div><p class="callout info">[<span class="opblock-summary-path"><span class="opblock-summary-method">\[DELETE\] </span>/v1/rest/extra-signature/delete</span>](https://ts-signer-write-api-test.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v1/deleteExtraSignature)</p>

<div data-lang="JavaScript" id="bkmrk-da-sostituire-con-la-4"><div><div><div><div><span class="opblock-summary-path"><span style="color: #ff0000;">**Da sostituire con la versione v2, tutte le info sulla request sono le medesime della v2** </span></span></div></div></div></div></div>---

**Initialize**

<p class="callout info">[<span class="opblock-summary-method">\[POST\] </span><span class="opblock-summary-path">/v1/rest/certificate/frm/initialize</span>](https://ts-signer-write-api-test.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v1/initialize_1)  
[<span class="opblock-summary-path"><span class="opblock-summary-method">\[POST\] </span>/v1/rest/certificate/fsm/initialize</span>](https://ts-signer-write-api-test.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v1/initialize)</p>

<div id="bkmrk-permette-di-iniziali-1"><div>Permette di inizializzare la richiesta per i certificati FRM o FSM (Firma elettronica qualificata automatica, Firma elettronica qualificata remota) che poi sarà mandata alla CA.</div><div>Il parametro **identificationType** nella request permette di specificare lo strumento di autenticazione che vorremmo usare per il certificato di FEQ qualificata remota(FSM, <span style="color: #ff0000;">Valido esclusivamente per questa tipologia di certificato</span>).</div><div>  
</div></div><div id="bkmrk-info-13">**Info**</div>- `signerId` identificativo del firmatario
- `itemId` identificativo dell'azienda
- `pin` valore di 8 cifre numeriche che serviranno come pin del certificato
- `identificationType` permette di specificare lo strumento di autenticazione che verrà utilizzato per il certificato di FEQ qualificata remota. I valori accettati sono **otp** o **SecureCall** . Se il parametro non viene specificato di default viene utilizzato **SecureCall**
- `serviceName` il valore da inserire è **SIGNATURE-FLOW**
- `savePin` va impostato sempre a true

Richiesta FRM

```JavaScript
{
  "signerId": 0,
  "serviceName": "SIGNATURE-FLOW",
  "itemId": "string",
  "pin": "string",
  "savePin": true
}
```

Richiesta FSM

```JSON
{
  "signerId": 0,
  "serviceName": "SIGNATURE-FLOW",
  "itemId": "string",
  "identificationType": "string"
}
```

<div data-lang="JavaScript" id="bkmrk-%7B-%22itemid%22%3A-%22string%22-1"><textarea style="display: none;">{ "itemId": "string", "pin": "string", //8 caratteri alfanumerici "savePin": true, "serviceName": "string", //SIGNATURE-FLOW "signerId": 0 }</textarea><div><div><textarea readonly="readonly" spellcheck="false" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;" tabindex="0"></textarea>  
</div></div></div>---

**Submit**

<p class="callout info"><span class="opblock-summary-path">[<span class="opblock-summary-method">\[POST\] </span>/v1/rest/certificate/frm/ca/submit](https://ts-signer-write-api-test.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v1/submit_1)  
[<span class="opblock-summary-method">\[POST\] </span>](https://ts-signer-write-api-test.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v1/submit)</span>[<span class="opblock-summary-path">/v1/rest/certificate/fsm/ca/submit</span>](https://ts-signer-write-api-test.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v1/submit)</p>

<div id="bkmrk-permette-di-finalizz-0"><div>Permette di finalizzare la richiesta del certificato mandando alla CA il documento fillato e firmato</div></div><div id="bkmrk--31"></div>```JSON
{
  "file": "string", //base64 del contratto fillato e firmato
  "signerId": 0
}
```

<div data-lang="JavaScript" id="bkmrk-%7B-%22file%22%3A-%22string%22%2C--0"><textarea style="display: none;">{ "file": "string", //base64 del contratto fillato e firmato "signerId": 0 }</textarea><div><div><textarea readonly="readonly" spellcheck="false" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;" tabindex="0"></textarea>  
</div></div></div>---

**AssignCertificate**

<p class="callout info"><span class="opblock-summary-path">[<span class="opblock-summary-method">\[POST\] </span>/v1/rest/certificate/frm/assign-certificate](https://ts-signer-write-api-test.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v1/assignCertificate_1)  
</span>[<span class="opblock-summary-path"><span class="opblock-summary-method">\[POST\] </span>/v1/rest/certificate/fsm/assign-certificate</span>](https://ts-signer-write-api-test.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v1/assignCertificate)</p>

<span style="background-color: #f5f5f5; color: #444444;">Permette di assegnare ad un firmatario un certificato già creato in precedenza da un altra azienda. </span>

<div id="bkmrk-nome-cognome-codice--0"><div><table border="1" style="border-collapse: collapse; width: 100.741%; height: 121px;"><tbody><tr style="height: 29px;"><td style="width: 16.6667%; height: 29px;">Nome</td><td style="width: 11.605%; height: 29px;">Cognome</td><td style="width: 28.642%; height: 29px;">Codice fiscale</td><td style="width: 24.4445%; height: 29px;">ItemId</td><td style="width: 19.2593%; height: 29px;">CertificateId</td><td style="width: 1.23457%; height: 29px;"> </td></tr><tr style="height: 29px;"><td style="width: 16.6667%; height: 29px;">Utente1</td><td style="width: 11.605%; height: 29px;">Utente1</td><td style="width: 28.642%; height: 29px;">CF1</td><td style="width: 24.4445%; height: 29px;">ITEM1</td><td style="width: 19.2593%; height: 29px;">CERT1</td><td style="width: 1.23457%; height: 29px;"> </td></tr><tr style="height: 29px;"><td style="width: 16.6667%; height: 29px;">Utente1</td><td style="width: 11.605%; height: 29px;">Utente1</td><td style="width: 28.642%; height: 29px;">CF1</td><td style="width: 24.4445%; height: 29px;">ITEM2</td><td style="width: 19.2593%; height: 29px;"> </td><td style="width: 1.23457%; height: 29px;"> </td></tr></tbody></table>

l'api si occupa di collegare il certificato se il firmatario è lo stesso ma per diverse aziende</div><div><table border="1" style="border-collapse: collapse; width: 100.741%; height: 121px;"><tbody><tr style="height: 29px;"><td style="width: 16.6667%; height: 29px;">Nome</td><td style="width: 11.605%; height: 29px;">Cognome</td><td style="width: 28.642%; height: 29px;">Codice fiscale</td><td style="width: 24.4445%; height: 29px;">ItemId</td><td style="width: 19.2593%; height: 29px;">CertificateId</td><td style="width: 1.23457%; height: 29px;"> </td></tr><tr style="height: 29px;"><td style="width: 16.6667%; height: 29px;">Utente1</td><td style="width: 11.605%; height: 29px;">Utente1</td><td style="width: 28.642%; height: 29px;">CF1</td><td style="width: 24.4445%; height: 29px;">ITEM1</td><td style="width: 19.2593%; height: 29px;">CERT1</td><td style="width: 1.23457%; height: 29px;"> </td></tr><tr style="height: 29px;"><td style="width: 16.6667%; height: 29px;">Utente1</td><td style="width: 11.605%; height: 29px;">Utente1</td><td style="width: 28.642%; height: 29px;">CF1</td><td style="width: 24.4445%; height: 29px;">ITEM2</td><td style="width: 19.2593%; height: 29px;">CERT1</td><td style="width: 1.23457%; height: 29px;"> </td></tr></tbody></table>

</div></div>```JSON
{
  "certificateId": 0,
  "itemId": "string",
  "serviceName": "string", //SIGNATURE-FLOW
  "signerId": 0
}
```

<div data-lang="JavaScript" id="bkmrk-%7B-%22certificateid%22%3A-0-0"><textarea style="display: none;">{ "certificateId": 0, "itemId": "string", "serviceName": "string", //SIGNATURE-FLOW "signerId": 0 }</textarea><div><div><textarea readonly="readonly" spellcheck="false" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;" tabindex="0"></textarea>  
</div></div></div>---

**UnAssignCertificate**

<p class="callout info"><span class="opblock-summary-path">[<span class="opblock-summary-method">\[DELETE\] </span>/v1/rest/certificate/frm/unassign-certificate](https://ts-signer-write-api-test.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v1/unAssignCertificate_1)  
[<span class="opblock-summary-method">\[DELETE\] </span>/v1/rest/certificate/fsm/unassign-certificate](https://ts-signer-write-api-test.agyo.io/api/swagger-ui/index.html?configUrl=/api/v3/api-docs/swagger-config#/v1/unAssignCertificate)</span></p>

<span style="background-color: #ffffff; color: #444444;">Scollega un certificato da un firmatario  
</span>

```JSON
{
  "certificateId": 0,
  "signerId": 0
}
```

---

<div id="bkmrk--35"></div><div data-lang="JavaScript" id="bkmrk-%7B-%22certificateid%22%3A-0-2"><textarea style="display: none;">{ "certificateId": 0, "signerId": 0 }</textarea><div><div><textarea readonly="readonly" spellcheck="false" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;" tabindex="0"></textarea>  
</div></div></div>