Signature

Documentazione flussi

Documentazione flussi

Introduzione

TeamSystem Digital Signature è la nuova app disponibile su piattaforma cloud TeamSystem Digital che consente a professionisti e aziende di gestire il processo di sottoscrizione elettronica dei documenti per se stesso e per i propri clienti, in maniera semplice e sicura.

TIPOLOGIE DI FIRME ELETTRONICHE GESTISTE 

Digital Signature gestisce tutte le fattispecie firma attualmente regolamentate dal legislatore, nello specifico:

  1. Firma elettronica semplice (FES)
    • Remota (autenticazione tramite SecureCall o OTP SMS);
    • Grafometrica
  2. Firma elettronica avanzata (FEA)
    • Remota (autenticazione tramite SecureCall o OTP SMS);
    • Grafometrica
  3. Firma elettronica qualificata (FEQ)
    • Remota (autenticazione tramite SecureCall);
    • Automatica

Firma elettronica semplice (FES)

È la tipologia di firma meno tutelante e trova applicazione principalmente in contesti di approvazione di flow documentale. Può essere applicata dai firmatari richiesti in due modalità:

basata su un processo di firma elettronica semplice tramite l’utilizzo del telefono cellulare del firmatario come strumento di strong authentication;

TS Digital Signature invia via mail ad ogni firmatario il documento da firmare, per sua consultazione e verifica attraverso il proprio dispositivo (PC o tablet); all’interno della mail è presente un link dove si accede alla sessione web che contiene il documento da sottoscrivere. La firma potrà essere apposta dal firmatario ricorrendo alla SecureCall (il firmatario visualizza un pop-up contenente un numero verde e un codice OTP. Effettuando la telefonata al numero verde e inserendo l’OTP all’interno della telefonata medesima il firmatario è in grado di portare a termine la sessione di sottoscrizione) o all’OTP SMS (il firmatario riceve tramite SMS un OTP da inserire all’interno della pagina web di visualizzazione del documento. La convalida automatica dell’OTP inserito permette di portare a termine la sessione di sottoscrizione).

basata su un processo di firma elettronica semplice tramite l’acquisizione delle firme autografe degli utenti per mezzo di dispositivi hardware (pc, tablet, smartphone) che rilevano il solo tratto grafico della sottoscrizione. La soluzione di firma, non richiedendo hw specifico, permette di portare a conclusione la fase di sottoscrizione con qualsiasi dispositivo, sia esso un pc, un tablet o uno smartphone.

NOTA: In entrambe le modalità, dopo la firma del o dei firmatari, il documento viene sigillato/controfirmato ricorrendo ad una FEQ automatica intestata ad un soggetto interno allo studio professionale/azienda.

Firma elettronica avanzata (FEA)

E’ la tipologia di firma che consente al firmatario la sottoscrizione con valenza di forma scritta del documento, evitando quindi la necessità di stampa di un documento e la sottoscrizione analogica. E’ applicabile a documenti di tipo fiscale (es. redditi 730, Irap, etc.) e a contratti di varia natura. Può essere applicata dai firmatari richiesti in due modalità:

basata su un processo di Firma Elettronica Avanzata tramite l’utilizzo del telefono cellulare del firmatario come strumento di strong authentication;

TS Digital Signature invia via mail ad ogni firmatario il documento da firmare, per sua consultazione e verifica attraverso il proprio dispositivo (PC o tablet); all’interno della mail è presente un link dove si accede alla sessione web che contiene il documento da sottoscrivere. La firma potrà essere apposta dal firmatario ricorrendo alla SecureCall (il firmatario visualizza un pop-up contenente un numero verde e un codice OTP. Effettuando la telefonata al numero verde e inserendo l’OTP all’interno della telefonata medesima il firmatario è in grado di portare a termine la sessione di sottoscrizione) o all’OTP SMS (il firmatario riceve tramite SMS un OTP da inserire all’interno della pagina web di visualizzazione del documento. La convalida automatica dell’OTP inserito permette di portare a termine la sessione di sottoscrizione)..

basata su un processo di firma elettronica avanzata tramite l’acquisizione delle firme autografe degli utenti per mezzo di dispositivi hardware in grado di rilevare le caratteristiche biometriche del modo di firmare del firmatario (ad es. pressione, velocità, ecc.). I tablet compatibili con il servizio di FEA grafometrica sono i seguenti:

    • Wacom STU-520;
    • Wacom STU-530;
    • Wacom STU-540;
    • Wacom DTU-1131;
    • Wacom DTU-1141;
    • Wacom DTU-1141B.

NOTA: In entrambe le modalità, dopo la firma del o dei firmatari, il documento viene sigillato/controfirmato ricorrendo ad una FEQ automatica intestata ad un soggetto interno allo studio professionale/azienda.

Firma elettronica qualificata (FEQ)

Prevede il rilasciato di un certificato qualificato di firma elettronica da parte della Certification Authority partner di TeamSystem (Trust Technologies SPA). TS Digital Signature gestisce 2 tipologie di FEQ:

Sostituisce e remotizza la tradizionale firma qualificata/digitale su token/smartcard. TS Digital Signature invia tramite mail ad ogni firmatario il documento da firmare, per sua consultazione e verifica attraverso il proprio dispositivo (PC o tablet); all’interno della mail è presente un link dove si accede ad alla sessione web che contiene il documento da sottoscrivere. La firma potrà essere apposta dal firmatario ricorrendo alla SecureCall. A differenza di quanto avviene in ambito FES e FEA, la SecureCall che dev’essere effettuata all’interno dei processi di FEQ remota prevede anche l’inserimento del PIN di firma associato al certificato in fase di attivazione dello stesso. Il PIN di firma dev’essere in serito durante la telefonata al numero verde subito dopo l’OTP.

TS Digital Signature effettua in automatico la firma elettronica qualificata automatica del documento (o della lista di documenti sottoposti al processo di firma) in maniera sincrona, passando ad IdSign il PIN del certificato di FEQ automatica configurato in precedenza.

Per ottenere il certificato qualificato di firma (remota e automatica) è necessario operare all'interno di Digital Signature e procedere come segue:

  1. accedere al tab firmatari;
  2. click su "nuovo firmarario"
  3. click sulla card di firma elettronica qualificata remota o di firma elettronica qualificata automatica (in base a quella che si vuole attivare);
  4. click su pulsante prosegui;
  5. inserimento dati personali richiedente (soggetto che diventerà intestatario del certificato di firma). NOTA: in questa pagina per il solo caso della firma qualificata automatica sarà necessario scegliere e confermare un codice PIN numerico di 8 cifre;
  6. click su avanti;
  7. click su "download del modulo di richiesta";
  8. firma in formato Pades (pdf) su applicativo di terze parti (es: Dike) del modulo di richiesta attraverso uno strumento di firma qualificata/digitale (toke, smartcard, cns ecc.) già in possesso del soggetto richiedente;
  9. click su "carica file" e upload documento sottoscritto così come al punto precedente;
  10. click su pulsante avanti.

NOTA: in caso di richiesta di certificato di firma qualificata automatica (CFEQ automatica), una volta terminata la procedura soprariportata non saranno necessarie azioni ulteriori, il certificato verrà attivato nell'arco di 10 minuti. In caso di richiesta di firma qualificata remota (CFEQ remota), una volta terminata la procedura soprariportata l'attivazione del certificato prevede i seguenti step 1) il richiedente riceve una mail contente un link al quale accedere per completare l'attivazione del certificato e un SMS contenente un codice OTP, 2) il richiedente clicca sul link e nella pagina che gli viene mostrata inserisce il codice OTP ricevuto tramite SMS nonché il proprio codice fiscale, 3) il richiedente sceglie un PIN personale da associare al certificato, 4) il richiedente conferma il PIN effettuando una SecureCall, 5) il certificato è pronto per essere utilizzato su Digital Signature.

TIPOLOGIA DI PROCESSI

Il servizio di firma di si divide principalmente in due macro-categorie:

Le due categorie si comportano in modo differente ed utilizzano elementi diversi della piattaforma TS Digital.

TABELLA SINOTTICA

  FES remota FES grafo FEA remota FEA grafo FEQ remota  FEQ autom
Processo Asincrono Asincrono Asincrono Asincrono Asincrono Sincrono
Tipo Firma Pades Pades Pades Pades Cades/Pades Cades/Pades/Xades
Necessità certificato

No

(Il soggetto che eroga il servizio (Institution Code) deve avere una CFEQ automatica)

No

(Il soggetto che eroga il servizio (Institution Code) deve avere una CFEQ automatica)

No

(Il soggetto che eroga il servizio (Institution Code) deve avere una CFEQ automatica)

No

(Il soggetto che eroga il servizio (Institution Code) deve avere una CFEQ automatica)

Firmatario Firmatario
Tipo Certificato
N/A N/A N/A N/A CFEQ remota CFEQ automatica
Strumento SecureCall e OTP SMS PC, tablet, smartphone SecureCall e OTP SMS HW dedicato WACOM SecureCall Automatica
N° Firmatari Uno o più Uno o più Uno o più Uno o più Uno o più Uno
Invito Firmatari Url di accesso tramite mail o link esposto da UI Url di accesso esposto da UI Url di accesso tramite mail o link esposto da UI Url di accesso esposto da UI Url di accesso tramite mail o link esposto da UI Automatico tramite PIN
Sigillo Necessario Necessario Necessario Necessario Non necessario Non necessario
signatureType SecureCall o otp fes_noservice o fes SecureCall o otp BioSignature FSM N/A
Vecchia nomenclatura  N/A N/A FRA FGA FRQ (certificato FSM) FMQ (certificato FRM)

 

Documentazione flussi

Processo sincrono

Il processo sincrono è il più semplice e permette di effettuare la firma di un documento in modo automatico e con restituzione immediata del base64 del documento firmato in modalità Cades, Pades e Xades.

Descrizione del flusso

Segue il seguente schema

j0mO8qAHu7HG3sDc-Drawing-Alessandro-Travi-1557319045.png

 

Il processo si conclude con la risposta contenente il base64 del documento con apposta la firma.

Documentazione flussi

Processo asincrono

Il processo asincorno è più articolato rispetto a quello sincrono, la restituzione del documento firmato avviene successivamente al verificarsi di eventi scatenati dall'utente.

Le tipologia di firma utilizzate sono tutte quelle viste nell'introduzione, ad eccezione della FEQ automatica che è ad appannaggio del solo processo sincrono.

Descrizione del flusso

Segue il seguente schema

49rJVHaJNFRiEyHM-Drawing-Alessandro-Travi-1557316586.png

 

AxhLyqHqVENVfidi-Drawing-Alessandro-Travi-1557323942.png

In base alle varie configurazioni effettuate, avremo attualmente due approcci per proseguire:

Panoramica del processo

 

 

 

 

Documentazione flussi

Gestione degli stati

Descrizione Stati

FES/FEA remota

FRA.png

 

FES/FEA grafometrica

FRA.png

 

FEQ remota

FRA.png

 

FEQ automatica

FMQ.png

Descrizione Api

Descrizione Api

ChangeLog

Versioni dei servizi attuali in PRODUZIONE



Versioni dei servizi attuali in TEST



Elenco rilascio nuove funzionalità in PRODUZIONE



 

ChangeLog

 

14/07/2021 Rilasciato in produzione

19/06/2021

17/06/2021

16/06/2021

15/06/2021

19/05/2021

18/05/2021

14/05/2021 Rilasciato in produzione

03/05/2021 Rilasciato in produzione

30/04/2021

28/04/2021

21/04/2021

15/04/2021

14/04/2021

13/04/2021

31/03/2021

25/03/2021

24/03/2021

15/03/2021

12/03/2021

11/03/2021

09/03/2021

02/03/2021

25/02/2021

24/02/2021

23/02/2021


 

Descrizione Api

Signer Read

API di lettura per Ts Digital Signature per le operazioni riguardanti i firmatari e i certificati. Swagger

Header

Gli header richiesti dalla chiamata sono gli header standard di TSDigital.

Il Content-Type deve essere application/json

In tutte le chiamate dove è richiesto ServiceName non impostare nulla a meno che si vuole utilizzare le api per il servizio adempimenti. 

 

Descrizione API


SIGNER

POST ​/v1​/rest​/signers​/search

Permette di recuperare i firmatari di una data azienda

Query Params

La ricerca fullText viene fatta su questi dati dei firmatari

Response

{
   "page":0,
   "itemsNumberPerPage":2,
   "totalItems":2,
   "totalPages":1,
   "signers":[
      {
         "id":219,
         "fiscalCode":"MNNRFL96D21I829W",
         "firstName":"Raffaele",
         "lastName":"Mainini",
         "sex":"M",
         "email":"rmainini@mondora.com",
         "cellNumber":"",
         "ownerDescription":null,
         "enabled":true,
         "certificates":[
            {
               "id":225,
               "type":"FSM",
               "status":"SUBMISSION_SUCCESS"
            },
            {
               "id":226,
               "type":"FRM",
               "certificateSn":"585",
               "certificateId":"10846",
               "enabled":true,
               "status":"FINAL_SUCCESS",
               "createBy":"rmainini@mondora.com"
            },
            {
               "id":60,
               "type":"FES",
               "enabled":true,
               "status":"ACTIVE"
            },
            {
               "id":81,
               "type":"FEA",
               "enabled":false,
               "documentHubId":"5e9847700e20480006394a98",
               "status":"INIT"
            }
         ],
         "_links":{
            "self":{
               "href":"https://ts-signer-read-api-test.agyo.io/api/v1/rest/signers/219"
            }
         }
      },
      {
         "id":247,
         "fiscalCode":"PNNGNN80A01I829P",
         "firstName":"Giovanni",
         "lastName":"Panni",
         "sex":"M",
         "email":"rmainini@mondora.com",
         "cellNumber":"",
         "ownerDescription":null,
         "enabled":true,
         "certificates":[

         ],
         "_links":{
            "self":{
               "href":"https://ts-signer-read-api-test.agyo.io/api/v1/rest/signers/247"
            }
         }
      }
   ]
}

Retrive Signer 

[GET] ​/v1​/rest​/signers​/{id}

Permette di recuperare tutte le info riguardanti uno specifico firmatario

Info

Response

{
   "id":219,
   "fiscalCode":"MNNRFL96D21I829W",
   "firstName":"Raffaele",
   "lastName":"Mainini",
   "fiscalCountry":"IT",
   "sex":"M",
   "birthCity":"Sondrio",
   "birthCountry":"IT",
   "birthDate":"1996-04-21T00:00:00.000+0000",
   "birthDistrict":"SO",
   "city":"Sondrio",
   "country":"IT",
   "district":null,
   "cap":"23010",
   "address":"Via Fasulla",
   "email":"rmainini@mondora.com",
   "cellNumber":"",
   "ownerTaxId":null,
   "ownerVatNumber":null,
   "ownerDescription":null,
   "documentIssuer":"me",
   "documentNumber":"1234",
   "documentEndDate":"2020-04-30T00:00:00.000+0000",
   "documentType":"Carta d'identità",
   "_links":{
      "self":{
         "href":"https://ts-signer-read-api-test.agyo.io/api/v1/rest/signers/219"
      }
   }
}

Retrive If Signer Exist into Item

[GET] ​/v1​/rest​/signers​/searchByFiscalCode

Permette di verificare se un determinato firmatario esiste già per un'azienda

Query Params

  • itemId  identificativo dell'azienda 
  • fiscalCode codice fiscale del firmatario che si sta controllando
  • serviceName controllare le info su questo campo in cima al documento

UTILS

Download Filled/Signed Document

[GET] ​/v1​/rest​/utils​/download​/document

Permette di scaricare il contratto per i certificati FRM/FSM (Firma elettronica qualificata automatica/Firma elettronica qualificata remota) sia solamente pre compilato sia quello pre compilato e firmato


Query Params

  • signerId  identificativo del firmatario
  • certType tipologia di certificato FRM o FSM
  • documentType tipo documento FILLED o SIGNED

Generate and return base64 FEA precompiled module

[GET] ​/v1​/rest​/utils​/generate​/fea​/module

Permette di generare il contratto del modulo di adesione FEA precompilato

Query Params

  • signerId  identificativo del firmatario


CERTIFICATE

Retrive Slot Usage

[GET] ​/v1​/rest​/certificates​/slotUsage​/{itemId}

Permette di recuperare il conteggio degli slot per i certificati di un'azienda


Query Params

  • itemId  identificativo dell'azienda 

Response 

{
"totalFRM":3,
"freeFRM":2,
"totalFSM":3,
"freeFSM":3
}

 


Descrizione Api

Signer Write

API di scrittura per Ts Digital Signature per le operazioni riguardanti i firmatari e i certificati. Swagger

Header

Gli header richiesti dalla chiamata sono gli header standard di TSDigital.

Il Content-Type deve essere application/json

In tutte le chiamate dove è richiesto ServiceName non impostare nulla a meno che si vuole utilizzare le api per il servizio adempimenti. 

Descrizione API


V2 - SIGNER

Create a new signer

[POST] ​/v2​/rest​/signer

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": "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" *
}
Esempi FES
Esempi FEA
Esempi FEQ

Response


{
  "signerId": 0,
  "itemId": "string",
  "fiscalCode": "string"
}

Disable an existent signer and disable all certificates

[DELETE] /v2/rest/signer/{signerId}

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


Update an existent signer

[PATCH]​/v2​/rest​/signer​/{signerId}

Permette di aggiornare i dati di un firmatario

*1 campo obbligatorio

Info

{
  "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

[POST] ​/v2​/rest​/enrollment/start

Permette diinizializzare una sessione di enrollment per creare un certificato.

*1 campo obbligatorio

Info

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

Response

[
  {
    "sessionId": "string"
  }
]

Delete existing enrollment session

[DELETE]​/v2​/rest​/enrollment/session​/{sessionId}

Permette di cancellare la sessione di enrollment

*1 campo obbligatorio

Info


Resend enrollment email

[PUT]​/v2​/rest​/enrollment/session​/{sessionId}/email/send

Permette di reinviare la mail di inizio enrollment

*1 campo obbligatorio

Info


V2 - EXTRA SIGNATURE

Activate FES

[POST] ​/v2​/rest​/extraSignature​/fes​/{signerId}

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

Info


Initialize FEA

[POST] ​/v2​/rest​/extraSignature​/fea

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

{
  "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


Delete Extra Signature

[DELETE] ​/v2​/rest​/extraSignature​/{extraSignatureId}

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

Info


V2 - CERTIFICATE

Un assign certificate to signer

[POST] ​/v2​/rest​/certificate​/{certificateId}​/unAssignTo​/{signerId}

Sostituisce le API v1 /v1/rest/certificate/frm/unassign-certificate  e /v1/rest/certificate/fsm/unassign-certificate

Scollega un certificato da un firmatario

Info


Send submit request to Trust to start certificate validation

[POST] ​/v2​/rest​/certificate​/{certificateId}​/send

Sostituisce le API v1 /v1/rest/certificate/fsm/ca/submit  e /v1/rest/certificate/frm/ca/submit

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

Info

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

Assign certificate to signer

[POST] ​/v2​/rest​/certificate​/{certificateId}​/assignTo​/{signerId}

Sostituisce le API v1 /v1/rest/certificate/frm/assign-certificate  e /v1/rest/certificate/fsm/assign-certificate

Permette di assegnare ad un firmatario un certificato già creato in precedenza da un altra azienda. 

Nome Cognome Codice fiscale ItemId CertificateId  
Utente1 Utente1 CF1 ITEM1 CERT1  
Utente1 Utente1 CF1 ITEM2    
l'api si occupa di collegare il certificato se il firmatario è lo stesso ma per diverse aziende
Nome Cognome Codice fiscale ItemId CertificateId  
Utente1 Utente1 CF1 ITEM1 CERT1  
Utente1 Utente1 CF1 ITEM2 CERT1  

Info

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

Initialize an remote Feq

[POST] ​/v2​/rest​/certificate​/fsm

Sostituisce API v1 /v1/rest/certificate/fsm/initialize

Permette di inizializzare la richiesta per il certificato FSM (Firma elettronica qualificata remota) che poi sarà mandata alla CA.
Info
{
  "signerId": 0,
  "serviceName": "SIGNATURE-FLOW",
  "itemId": "string",
  "identificationType": "string"
}

Initialize an automatic Feq

[POST] ​/v2​/rest​/certificate​/frm

Sostituisce API v1 /v1/rest/certificate/frm/initialize

Permette di inizializzare la richiesta per il certificato FRM (Firma elettronica qualificata automatica) che poi sarà mandata alla CA.

Info
  • signerId identificativo del firmatario
  • itemId identificativo dell'azienda
  • pin valore di 8 cifre numeriche che serviranno come pin del certificato
  • serviceName controllare le info su questo campo in cima al documento
{
  "signerId": 0,
  "serviceName": "SIGNATURE-FLOW", 
  "itemId": "string",
  "pin": "string"
}


Migrate certificate

[POST] ​/v2​/rest​/certificate/{certificateId}/migrate

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

*1 campo obbligatorio

Info

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


V1

Create a new signer

[POST] /v1/rest/signer

Permette la creazione di un firmatario per una determinata azienda

Da sostituire con la versione v2, tutte le info sulla request sono le medesime della v2


Disable an existent signer and disable all certificates

[DELETE] /v1/rest/signer/{signerId}

Da sostituire con la versione v2, tutte le info sulla request sono le medesime della v2

Update an existent signer

[PATCH] /v1/rest/signer/{signerId}

Da sostituire con la versione v2, tutte le info sulla request sono le medesime della v2

Initialize FEA

[POST] /v1/rest/extra-signature/create/fea

Da sostituire con la versione v2, tutte le info sulla request sono le medesime della v2

Activate FES

[POST] /v1/rest/extra-signature/create/fes

Da sostituire con la versione v2, tutte le info sulla request sono le medesime della v2


Delete Extra Signature

[DELETE] /v1/rest/extra-signature/delete

Da sostituire con la versione v2, tutte le info sulla request sono le medesime della v2

Initialize

[POST] /v1/rest/certificate/frm/initialize
[POST] /v1/rest/certificate/fsm/initialize

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.
Il parametro identificationType nella request permette di specificare lo strumento di autenticazione che vorremmo usare per il certificato di FEQ qualificata remota(FSM, Valido esclusivamente per questa tipologia di certificato).

Info

Richiesta FRM

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

Richiesta FSM

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


Submit

[POST] /v1/rest/certificate/frm/ca/submit
[POST]
/v1/rest/certificate/fsm/ca/submit

Permette di finalizzare la richiesta del certificato mandando alla CA il documento fillato e firmato
{
  "file": "string", //base64 del contratto fillato e firmato
  "signerId": 0
}


AssignCertificate

[POST] /v1/rest/certificate/frm/assign-certificate
[POST] /v1/rest/certificate/fsm/assign-certificate

Permette di assegnare ad un firmatario un certificato già creato in precedenza da un altra azienda. 

Nome Cognome Codice fiscale ItemId CertificateId  
Utente1 Utente1 CF1 ITEM1 CERT1  
Utente1 Utente1 CF1 ITEM2    
l'api si occupa di collegare il certificato se il firmatario è lo stesso ma per diverse aziende
Nome Cognome Codice fiscale ItemId CertificateId  
Utente1 Utente1 CF1 ITEM1 CERT1  
Utente1 Utente1 CF1 ITEM2 CERT1  
{
  "certificateId": 0,
  "itemId": "string",
  "serviceName": "string", //SIGNATURE-FLOW
  "signerId": 0
}


UnAssignCertificate

[DELETE] /v1/rest/certificate/frm/unassign-certificate
[DELETE] /v1/rest/certificate/fsm/unassign-certificate

Scollega un certificato da un firmatario

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


Descrizione Api

Signature Read

API di lettura per Ts Digital Signature per le operazioni riguardanti i documenti. Swagger

Header

Gli header richiesti dalla chiamata sono gli header standard di TSDigital.

Il Content-Type deve essere application/json

 

Descrizione API


DOCUMENTS

Search documents

[POST] ​/v1​/documents​/search

Permette di effettuare una ricerca filtrata per i documenti di una determinata azienda

Query params

Request body

{ //TODO FIX
  "page": {
    "page": 0,
    "size": 0,
    "sort": [
      "string"
    ]
  },
  "request": {
    "managerId": "string",
    "documentStatusId": "string",
    "documentTypeId": "string",
    "documentOwnerId": "string",
    "ownerCriteria": {
      "ownerType": "string",
      "searchTextCriteria": "string"
    },
    "batchId": "string",
    "multiDocumentSessionId": "string",
    "documentIntermediaryId": "string",
    "cctStatusCode": "string",
    "lastTimestampFrom": 0,
    "minCreationDate": "2021-02-24T23:34:28.076Z",
    "maxCreationDate": "2021-02-24T23:34:28.076Z",
    "expiryDate": "2021-02-24T23:34:28.076Z",
    "signerTextFieldsSearchCriteria": "string"
  }
}

Retrieve detail of single document

[GET] ​/v1​/documents​/{hubId}

Permette di recuperare tutte le info di un determinato documento

Query params


Get document signature links

[GET] ​/v1​/documents​/{hubId}​/signatureLink

Restituisce il link riguardanti una determinata sessione in stato ALLA_FIRMA divisi per firmatari

Query params

Response

[
    {
        "fiscalCode": "CSAMRC80A01I829M",
        "email": "rmainini@mondora.com",
        "url": "https://b2bstaticdev.blob.core.windows.net/static-apps/b2b-firma/actions/redirect.html?sign_token=Y2NjNDYxZTgtOWEyNy00OTdmLTkwYTQtZjdlYzg1ODUzNmZl"
    },
    {
        "fiscalCode": "DBSNDR93T31B519E",
        "email": "rmainini@mondora.com",
        "url": "https://b2bstaticdev.blob.core.windows.net/static-apps/b2b-firma/actions/redirect.html?sign_token=MzFhZGE3NmItOTM2OS00YTFmLWE4MmEtNzg5ZTM5NmExODhl"
    }
]

Get multiSessionDocument signature links

[GET] ​/v1​/documents​/multiDocumentSession​/{multiDocumentSessionId}​/signatureLink

Query params

Response

[
    {
        "fiscalCode": "CSAMRC80A01I829M",
        "email": "rmainini@mondora.com",
        "url": "https://b2bstaticdev.blob.core.windows.net/static-apps/b2b-firma/actions/redirect.html?sign_token=Y2NjNDYxZTgtOWEyNy00OTdmLTkwYTQtZjdlYzg1ODUzNmZl"
    },
    {
        "fiscalCode": "DBSNDR93T31B519E",
        "email": "rmainini@mondora.com",
        "url": "https://b2bstaticdev.blob.core.windows.net/static-apps/b2b-firma/actions/redirect.html?sign_token=MzFhZGE3NmItOTM2OS00YTFmLWE4MmEtNzg5ZTM5NmExODhl"
    }
]

Download attachment as base64

[GET] ​/v1​/documents​/{hubId}​/attachment​/{attachmentId}

Permette il download in base64 di eventuali allegati del documento

Path params


Download attachment

[GET] ​/v1​/documents​/{hubId}​/attachment​/{attachmentId}​/file

Permette il download del file di eventuali allegati del documento

Path params


Download base64 document

[GET] ​/v1​/documents​/{hubId}​/download

Permette il download in base64 del documento

Path params

Query params


Download document

[GET] ​/v1​/documents​/{hubId}​/download​/file

Permette il download del file del documento

Path params

Query params


DOCUMENTS TYPES

Retrieve document type detail

[GET] ​/v1​/documentTypes​/{id}

Restituisce il dettaglio del singolo tipo di documento

Path params


Retrieve list of document types

[GET] ​/v1​/documentTypes

Restituisce la lista dei tipi documento


DOCUMENTS STATUSES

Retrieve document status detail

[GET] ​/v1​/documentStatuses​/{id}

Restituisce il dettaglio del singolo stato documento

Path params


Retrieve list of document types

[GET] ​/v1​/documentStatuses

Restituisce la lista degli stati documento


ARCHIVED DOCUMENTS

Search archived documents

[POST] ​/v1​/archivedDocuments​/search

Permette di effettuare una ricerca filtrata per i documenti che sono stati cancellati di una determinata azienda

Query params

Request body

{ //TODO FIX
  "page": {
    "page": 0,
    "size": 0,
    "sort": [
      "string"
    ]
  },
  "request": {
    "managerId": "string",
    "documentStatusId": "string",
    "documentTypeId": "string",
    "documentOwnerId": "string",
    "ownerCriteria": {
      "ownerType": "string",
      "searchTextCriteria": "string"
    },
    "batchId": "string",
    "multiDocumentSessionId": "string",
    "documentIntermediaryId": "string",
    "cctStatusCode": "string",
    "lastTimestampFrom": 0,
    "minCreationDate": "2021-02-24T23:34:28.076Z",
    "maxCreationDate": "2021-02-24T23:34:28.076Z",
    "expiryDate": "2021-02-24T23:34:28.076Z",
    "signerTextFieldsSearchCriteria": "string"
  }
}

Retrieve detail of single archived document

[GET] ​/v1​/archivedDocuments​/{hubId}

Permette di recuperare tutte le info di un determinato documento che è stato cancellato

Query params


TEMPLATES

Get templates list

[GET] ​/v1​/templates

Permette di avere una lista dei template creati

Query params


Retrieve detail of single template

[GET] ​/v1​/templates​/{templateId}

Permette di recuperare tutte le info di un determinato template

Path params


Download base64 template document

[GET] ​/v1​/templates​/{templateId}​/templateDocuments​/{templateDocumentId}​/download

Permette il download in base64 di un determinato documento inserito nel template

Path params


Download template document

[GET] ​/v1​/templates​/{templateId}​/templateDocuments​/{templateDocumentId}​/download​/file

Permette il download del file di un determinato documento inserito nel template

Path params



 

 

//TODO MUOVERE NELLA SEZIONE ESEMPI

Esempi di utilizzo

Fetch documenti incrementale

Per ottenere i documenti in maniera incrementale è necessario utilizzare l'endpoint /v1/documents/search specificando un filtro per lastTimestampFrom ed un ordinamento per lastTimestamp.

POST /api/v1/documents/search?page=0&size=100&sort=lastTimestamp,ASC

body:
{ 
	"lastTimestampFrom" : 1587736390388
}

Il timestamp è uno unix epoch in millisecondi e la prima volta che si effettua la chiamata non è necessario specificarlo.

Ad ogni chiamata è necessario salvarsi il valore più grande del campo lastTimestamp presente sui documenti ottenuti all'ultima pagina richiesta (se il sorting è ascendente, in caso di sorting discendente va preso il primo documento della prima pagina).

Di seguito un esempio:

--- chiamata 1 ---
POST /api/v1/documents/search?page=0&size=100&sort=lastTimestamp,ASC

body: { }

response:
{
    "_embedded": {
        "documentList": [
			 ... documenti ...
        ]
    },
    "_links": {
		... links hateoas ...
    },
    "page": {
        "size": 100,
        "totalElements": 150,
        "totalPages": 2,
        "number": 0
    }
}

--- chiamata 2 ---
POST /api/v1/documents/search?page=1&size=100&sort=lastTimestamp,ASC

body: { }

response:
{
    "_embedded": {
        "documentList": [
			 ... primi 49 documenti ...,
             {
               ... campi 50° documento ...,
               "lastTimestamp": 1587736390388
             }
        ]
    },
    "_links": {
		... links hateoas ...
    },
    "page": {
        "size": 100,
        "totalElements": 150,
        "totalPages": 2,
        "number": 1
    }
}

Finito il primo giro di richieste paginate sarà necessario salvare il campo lastTimestamp più grande trovato nei documenti ottenuti, in questo esempio il valore 1587736390388.

Alla richiesta successiva sarà necessario impostare il suddetto valore come filtro lastTimestampFrom nel body della richiesta:

--- chiamata 1 ---
POST /api/v1/documents/search?page=0&size=100&sort=lastTimestamp,ASC

body: 
{ 
	"lastTimestampFrom": 1587736390388
}

response:
{
    "_embedded": {
        "documentList": [
			 ... 9 documenti ...,
             {
             	... campi 10° documento ...,
                "lastTimestamp": <nuovo valore da salvare>
             }
        ]
    },
    "_links": {
		... links hateoas ...
    },
    "page": {
        "size": 100,
        "totalElements": 10,
        "totalPages": 1,
        "number": 0
    }
}

In questo modo ad ogni nuova chiamata saranno presenti solo documenti che hanno subito una variazione, quindi con un lastTimestamp maggiore a quello ottenuto dalla chiamata precedente.

Descrizione Api

Signature Write

API di scrittura per Ts Digital Signature per le operazioni riguardanti i documenti. Swagger

Header

Gli header richiesti dalla chiamata sono gli header standard di TSDigital.

Il Content-Type deve essere application/json

Descrizione API


UPLOAD

Upload file for async sign

[POST] ​/v1​/rpc​/upload​/async

Permette di caricare un documento per il processo asincrono

Request body

I campi contrassegnati da asterisco (*) sono da considerarsi obbligatori.

{
  "hubId": "616ecd1edbd9bc7f725633da",
  "status": {
    "statusCode": "Firmato",
    "errorDescription": null,
    "debugDescription": null,
    "creationDate": "2021-10-19T13:51:58.696Z"
  }
}

{
  "transmitterId": "string",
  "managerId": "string",
  "batchId": "string",
  "fileName": "string",
  "sessionName": "string",
  "notes": "string",
  "thirdPartyEmailAddresses": [
    "string",
      ...
    "string"
  ]
  "fileContent": "string",
  "documentType": "string",
  "owner": {
    "firstName": "string",
    "lastName": "string",
    "companyName": "string",
    "vat": "string",
    "fiscalCode": "string",
    "kind": "string"
  },
  "metadata": {
    "cct": {
      "additionalProp1": "string",
      "additionalProp2": "string",
      "additionalProp3": "string"
    },
    "document": {
      "additionalProp1": "string",
      "additionalProp2": "string",
      "additionalProp3": "string"
    }
  },
  "autoSendCCT": true,
  "signatureMode": "string",
  "mainSignerId": "string",
  "expiryDate": "string",
  "year": 0,
  "signatureProcessName": "string",
  "areSignersOrdered": true,
  "webHookUrl": "string",
  "afterSignRedirectUrl": "string",
  "attachments": [
    {
      "description": "string",
      "signerFiscalCode": "string",
      "details": [
        {
          "description": "string",
          "optional": true
        }
      ]
    }
  ],
  "signers": [
    {
      "fiscalCode": "string",
      "firstName": "string",
      "lastName": "string",
      "email": "string",
      "mobile": "string",
      "canEmailBeSentAgain": true,
      "signatureData": [
        {
          "signatureType": "string",
          "fieldGroup": "string",
          "shortDescription": "string",
          "longDescription": "string",
          "textType": "string",
          "positioningStrategy": "string",
          "coordsRegion": {
            "page": 0,
            "x": 0,
            "y": 0,
            "w": 0,
            "h": 0
          },
          "fieldNameRegion": {
            "name": "string",
            "offsetX": 0,
            "offsetY": 0,
            "w": 0,
            "h": 0
          },
          "textPatternRegion": {
            "pattern": "string",
            "number": 0,
            "offsetX": 0,
            "offsetY": 0,
            "w": 0,
            "h": 0
          },
          "optional": true
        }
      ]
    }
  ],
  "commonSign": true,
  "multipleDocumentSession": true,
  "useSignatureTimestamp": true,
  "sendSignedDocumentToMail": true
}

Esempi


Upload file and download signed document

[POST] ​/v1​/rpc​/upload​/sync

Permette il caricamento di un file seguendo il processo sincrono

Request body

{
  "transmitterId": "string",
  "managerId": "string",
  "batchId": "string",
  "fileName": "string",
  "fileContent": "string",
  "documentType": "string",
  "owner": {
    "firstName": "string",
    "lastName": "string",
    "companyName": "string",
    "vat": "string",
    "fiscalCode": "string",
    "kind": "string"
  },
  "metadata": {
    "cct": {
      "additionalProp1": "string",
      "additionalProp2": "string",
      "additionalProp3": "string"
    },
    "document": {
      "additionalProp1": "string",
      "additionalProp2": "string",
      "additionalProp3": "string"
    }
  },
  "autoSendCCT": true,
  "signatureMode": "string",
  "signer": {
    "fiscalCode": "string",
    "firstName": "string",
    "lastName": "string",
    "email": "string",
    "mobile": "string",
    "canEmailBeSentAgain": true,
    "pin": "string"
  },
  "withoutFile": true,
  "useSignatureTimestamp": false
}
V2 - UPLOAD

Upload file for async sign

[POST] ​/v2/rpc​/upload​/async

Permette di caricare un documento per il processo asincrono

Request body

{
  "hubId": "616ecd1edbd9bc7f725633da",
  "status": {
    "statusCode": "Firmato",
    "errorDescription": null,
    "debugDescription": null,
    "creationDate": "2021-10-19T13:51:58.696Z"
  }
}

{
  "transmitterId": "string",
  "managerId": "string",
  "batchId": "string",
  "fileName": "string",
  "fileContent": "string",
  "documentType": "string",
  "sessionName": "string",
  "notes": "string",
  "owner": {
    "firstName": "string",
    "lastName": "string",
    "companyName": "string",
    "vat": "string",
    "fiscalCode": "string",
    "kind": "string"
  },
  "metadata": {
    "cct": {
      "additionalProp1": "string",
      "additionalProp2": "string",
      "additionalProp3": "string"
    },
    "document": {
      "additionalProp1": "string",
      "additionalProp2": "string",
      "additionalProp3": "string"
    }
  },
  "autoSendCCT": true,
  "signatureMode": "string",
  "mainSignerId": "string",
  "expiryDate": "string",
  "year": 0,
  "signatureProcessName": "string",
  "areSignersOrdered": true,
  "webHookUrl": "string",
  "afterSignRedirectUrl": "string",
  "attachments": [
    {
      "description": "string",
      "signerFiscalCode": "string",
      "details": [
        {
          "description": "string",
          "optional": true
        }
      ]
    }
  ],
  "signers": [
    {
      "fiscalCode": "string",
      "firstName": "string",
      "lastName": "string",
      "email": "string",
      "mobile": "string",
      "canEmailBeSentAgain": true,
      "signatureData": [
        {
          "signatureType": "string",
          "fieldGroup": "string",
          "shortDescription": "string",
          "longDescription": "string",
          "textType": "string",
          "positioningStrategy": "string",
          "coordsRegion": {
            "page": 0,
            "x": 0,
            "y": 0,
            "w": 0,
            "h": 0
          },
          "fieldNameRegion": {
            "name": "string",
            "offsetX": 0,
            "offsetY": 0,
            "w": 0,
            "h": 0
          },
          "textPatternRegion": {
            "pattern": "string",
            "number": 0,
            "offsetX": 0,
            "offsetY": 0,
            "w": 0,
            "h": 0
          },
          "optional": true
        }
      ]
    }
  ],
  "commonSign": true,
  "multipleDocumentSession": true,
  "useSignatureTimestamp": true,
  "sendSignedDocumentToMail": true
}

Esempi


Upload file and download signed document

[POST] ​/v2/rpc​/upload​/sync

Permette il caricamento di un file seguendo il processo sincrono

Request body

{
  "transmitterId": "string",
  "managerId": "string",
  "batchId": "string",
  "fileName": "string",
  "fileContent": "string",
  "documentType": "string",
  "owner": {
    "firstName": "string",
    "lastName": "string",
    "companyName": "string",
    "vat": "string",
    "fiscalCode": "string",
    "kind": "string"
  },
  "metadata": {
    "cct": {
      "additionalProp1": "string",
      "additionalProp2": "string",
      "additionalProp3": "string"
    },
    "document": {
      "additionalProp1": "string",
      "additionalProp2": "string",
      "additionalProp3": "string"
    }
  },
  "autoSendCCT": true,
  "signatureMode": "string",
  "signer": {
    "fiscalCode": "string",
    "firstName": "string",
    "lastName": "string",
    "email": "string",
    "mobile": "string",
    "canEmailBeSentAgain": true,
    "pin": "string"
  },
  "withoutFile": true
}



Append document to multiDocumentSession

Desc


JOB

Start signature job

[POST] ​/v1​/jobs​/start

Permette di creare la sessione di firma del processo asincrono per firmare il documento

Request body

Esempio


Start signature job for multiDocuments

[POST] ​/v1​/jobs​/start​/multidocument

Permette di creare la sessione di firma del processo asincrono contemporaneamente su più documenti(documenti multi sessione) 

Request body

Esempio


V2 - JOB

Start signature job per CA Teamsystem

[POST] ​/v2​/jobs​/start

Permette di creare la sessione di firma del processo asincrono per firmare il documento

Request body

Esempio


Start signature job for multiDocuments

[POST] ​/v2/jobs​/start​/multidocument

Permette di creare la sessione di firma del processo asincrono contemporaneamente su più documenti(documenti multi sessione) 

Request body

Esempio


Cancel signature job

[POST] ​/v2/jobs​/cancel

Permette di cancellare una sessione di firma 

Request body


CCT

Send document to cct

[POST] ​/v1​/cct​/send

Permette di inviare un documento in conservazione

Request body


Send documents to cct

[POST] ​/v1​/cct​/send​/multi

Permette di inviare più documenti in conservazione per un massimo di 50 documenti per chiamata

Request body


MAIL

Resend signature mail

[POST] ​/v1​/mail​/resend

Permette di rimandare la mail con il link per la sessione di firma per uno o più firmatari di un documento se non hanno ancora firmato

Request body


DOCUMENT

Archive a document

[POST] ​/v1​/document/{hubId}​/archive

Permette di eliminare un documento. Il documento verrà spostato in una collection quindi per la ricerca eventuale del documento eliminato bisogna utilizzare l'api apposta

Path params


Archive a multiDocument session

[POST] ​/v1/document/multiDocumentSession/{multiDocumentSessionId}/archive

Permette di eliminare un documento multi sessione. Il documento verrà spostato in una collection quindi per la ricerca eventuale del documento eliminato bisogna utilizzare l'api apposta

Path params


Unarchive a document

[POST] ​/v1​/document​/{hubId}​/unarchive

Permette di ripristinare un documento eliminato. Solamente i documenti in stato Firmato o Caricato possono essere ripristinati

Path params


Unarchive a multiDocument session

[POST] ​/v1​/document​/multiDocumentSession​/{multiDocumentSessionId}​/unarchive

Permette di ripristinare un documento multi sessione eliminato. Solamente i documenti in stato Firmato o Caricato possono essere ripristinati

Path params


Remove from multiDocument session

[PATCH] ​/v1​/document​/{hubId}​/removeFromMultiDocumentSession

Permette di eliminare un documento da una sessione multi documento. Il documento nello specifico non verrà cancellato ma verrà considerato con un normale singolo documento //TODO

Path params


TEMPLATE

Titolo

Desc


Titolo

Desc


Titolo

Desc


Titolo

Desc


Titolo

Desc


Titolo

Desc



Cancel Jobs
POST /v1/jobs/cancel

Permette di cancellare un job precedentemente avviato. Questo comporta l'eliminazione o lo stralcio del documento. Lo stato del documento passerà in ELIMINATO se tutto il processo di firma non era ancora concluso altrimenti in STRALCIATO. I documenti già mandati in CCT non possono essere ne eliminati ne stralciati.


Descrizione Api

Signature Config

API di configurazione per Ts Digital Signature. Swagger

Header

Gli header richiesti dalla chiamata sono gli header standard di TSDigital.

Il Content-Type deve essere application/json

 

Descrizione API


CONFIG

Get config for specify itemId

[GET] ​/config​/{itemId}

Permette di recuperare le info sul pacchetto attivato per una specifica azienda. Se l'azienda ha 2 pacchetti, uno intestato a se stessa e uno al commercialista, verrà recuperato i pacchetto intestato al commercialista.

Path params

Response

{
    "itemId": "edf11f25-1a02-402d-9092-4d9d4de64b7d",
    "ownerId": "edf11f25-1a02-402d-9092-4d9d4de64b7d",
    "oldItemId": "MNNRFL96D21I829W",
    "oldOwnerId": "MNNRFL96D21I829W",
    "createdAt": "2021-03-10T13:35:37.087+00:00",
    "updatedAt": "2021-03-10T13:35:37.087+00:00",
    "active": true,
    "fga": true,
    "fra": false,
    "frq": false,
    "fmq": true,
    "erp": false,
    "signatureTimeStamp": false,
    "readOnly": false
}

EXTRADATA

Get extra-data for specify item

[GET] ​/registry​/extra-data

Permette di recuperare i dati aggiuntivi per una specifica azienda

Query params

Response

{
    "id": "MNNRFL96D21I829W",
    "webSite": " https://agyo.elevio.help/it/articles/477",
    "policyNumber": "IFL0009971",
    "email": "aa@aa.com",
    "cellNumber": "12342"
}

Set extra-data for specify item

[POST] ​/registry​/extra-data

Permette di impostare/aggiornare i dati aggiuntivi per una specifica azienda

Query params

Request Body


SEAL

Get seal info for specify item

[GET] ​/seal

Permette di recuperare le informazioni sul sigillo per una specifica azienda

Query params

Response

{
    "personalSeal": false,
    "personalSealDefault": null
}

Set seal option for specify item

[POST] ​/seal

Permette di impostare/aggiornare i dati del sigillo per una specifica azienda

Request Body

 

Descrizione Api

Digital Sign Api (DEPRECATO)

API di configurazione per Ts Digital Signature. Swagger

Header

Gli header richiesti dalla chiamata sono gli header standard di TSDigital.

Il Content-Type deve essere application/json

Servizio deprecato in favore di Signature Config

 

Descrizione API


EXTRADATA

Get extra-data for specify item (deprecata)

[GET] ​/registry​/extra-data

Permette di recuperare i dati aggiuntivi per una specifica azienda

Query params

Response

{
    "id": "MNNRFL96D21I829W",
    "webSite": " https://agyo.elevio.help/it/articles/477",
    "policyNumber": "IFL0009971",
    "email": "aa@aa.com",
    "cellNumber": "12342"
}

Set extra-data for specify item (deprecata)

[POST] ​/registry​/extra-data

Permette di impostare/aggiornare i dati aggiuntivi per una specifica azienda

Query params

Request Body



Esempi

Esempi

Signature Write

Upload file for async sign

POST - /upload/async v1 con dati minimi

curl 'https://signature-write-api-test.agyo.io/api/v1/rpc/upload/async' \
  -H 'Accept: application/json, text/plain, */*' \
  -H 'Authorization: Bearer ' \
  -H 'Connection: keep-alive' \
  -H 'Content-Type: application/json;charset=UTF-8' \
  -H 'Origin: https://apptest.teamsystemdigital.com' \
  -H 'Referer: https://apptest.teamsystemdigital.com/' \
  -H 'Sec-Fetch-Dest: empty' \
  -H 'Sec-Fetch-Mode: cors' \
  -H 'Sec-Fetch-Site: cross-site' \
  -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36' \
  -H 'X-App-Name: DIGITAL-SIGN' \
  -H 'X-App-Version: 2.25.49' \
  -H 'X-Correlation-Id: 4067db78-b818-4bdd-a017-c5428caa25a9' \
  -H 'X-Item-Id: 01234567890' \
  -H 'X-Request-Id: clyo4oowi0008356kojkiu99q' \
  -H 'X-User-Id: mail@mail.com' \
  -H 'accept-language: it' \
  -H 'sec-ch-ua: "Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  --data-raw '{
	"documentType": "0000",
	"expiryDate": "23/07/2024",
	"fileContent": "inserire base64",
	"fileName": "file.pdf",
	"owner": {},
	"signatureMode": "pades",
	"signatureProcessName": "FEA remota",
	"signers": [
		{
			"mobile": "+393333333333",
			"email": "firmatario@mail.com",
			"fiscalCode": "ABCABC00X00X000X",
			"firstName": "nome",
			"lastName": "cognome",
			"signatureData": [
				{
					"coordsRegion": {
						"page": 1,
						"h": 0.05,
						"w": 0.2,
						"x": "0.03",
						"y": "0.02"
					},
					"fieldGroup": "fieldGroup",
					"positioningStrategy": "coords",
					"shortDescription": "signature",
					"longDescription": "signature",
					"signatureType": "otp",
					"textType": "signature",
					"optional": false
				}
			]
		}
	],
	"transmitterId": "01234567890"
}'

{
    "attachments": [],
    "areSignersOrdered": false,
    "autoSendCCT": false,
    "documentType": "0000",
    "expiryDate": "10/03/2021",
    "fileContent": "BASE64FILE"
    "fileName": "sample.pdf",
    "useSignatureTimestamp": false,
    "mainSignerId": "BSTCNA80A01I829U",
    "managerId": null,
    "metadata": {},
    "owner": {},
    "signatureMode": "pades",
    "signatureProcessName": "FEA remota",
    "signers": [
        {
            "mobile": "33325567864",
            "email": "prova@prova.com",
            "fiscalCode": "CRAPCC80A01I829L",
            "firstName": "Marco",
            "lastName": "Rossi",
            "signatureData": [               
                {
                    "coordsRegion": {
                        "page": 1,
                        "h": 0.05,
                        "w": 0.2,
                        "x": "0.53",
                        "y": "0.09"
                    },
                    "fieldGroup": "fieldGroup",
                    "positioningStrategy": "coords",
                    "shortDescription": "signature",
                    "longDescription": "signature",
                    "signatureType": "SecureCall",
                    "textType": "signature",
                    "optional": false
                }            
            ]
        }
    ],
    "transmitterId": "23785789985",
    "multipleDocumentSession": false,
    "sendSignedDocumentToMail": false
}

Testo

RadioButton

   			 	{
                    "coordsRegion": {
                        "page": 1,
                        "h": 0.05,
                        "w": 0.2,
                        "x": "0.53",
                        "y": "0.09"
                    },
                    "fieldGroup": "fieldGroup",
                    "positioningStrategy": "coords",
                    "shortDescription": "signature",
                    "longDescription": "signature",
                    "signatureType": "SecureCall",
                    "textType": "signature",
                    "optional": false
                }, {
                    "coordsRegion": {
                        "page": 1,
                        "h": 0.04,
                        "w": 0.05,
                        "x": "0.24",
                        "y": "0.43"
                    },
                    "fieldGroup": "Animale preferito",
                    "positioningStrategy": "coords",
                    "shortDescription": "Gatto",
                    "longDescription": "Animale preferito",
                    "signatureType": "SecureCall",
                    "textType": "radiobutton",
                    "optional": false
                }, {
                    "coordsRegion": {
                        "page": 1,
                        "h": 0.04,
                        "w": 0.05,
                        "x": "0.10",
                        "y": "0.43"
                    },
                    "fieldGroup": "Animale preferito",
                    "positioningStrategy": "coords",
                    "shortDescription": "Cane",
                    "longDescription": "Animale preferito",
                    "signatureType": "SecureCall",
                    "textType": "radiobutton",
                    "optional": false
                }

CheckBox

{
	"coordsRegion": {
		"page": 1,
        "h": 0.05,
        "w": 0.2,
        "x": "0.53",
        "y": "0.09"
	},
    "fieldGroup": "fieldGroup",
    "positioningStrategy": "coords",
    "shortDescription": "signature",
    "longDescription": "signature",
    "signatureType": "SecureCall",
    "textType": "signature",
     "optional": false
}, {
	"coordsRegion": {
    	"page": 1,
        "h": 0.04,
        "w": 0.05,
        "x": "0.36",
        "y": "0.71"
     },
     "fieldGroup": "fieldGroup",
     "positioningStrategy": "coords",
     "shortDescription": "checboxn1",
     "longDescription": "Vuoi accettare il contratto?",
     "signatureType": "otp",
     "textType": "checkbox",
     "optional": true
}

Allegati

 "attachments": [
        {
            "description": "carta d'identita'",
            "signerFiscalCode": "BNDNRC85M29G284G",
            "details": [
                {
                    "description": "fronte",
                    "optional": false
                },
                {
                    "description": "retro",
                    "optional": false
                }
            ]
        },
        {
            "description": "foto segnaletica",
            "signerFiscalCode": "MNNRFL96D21I829W",
            "details": [
                {
                    "description": "foto",
                    "optional": false
                }
            ]
        }
    ]
Start signature job

POST - /jobs/start v1

curl 'https://signature-write-api-test.agyo.io/api/v1/jobs/start' \
  -H 'Accept: application/json, text/plain, */*' \
  -H 'Authorization: Bearer ' \
  -H 'Connection: keep-alive' \
  -H 'Content-Type: application/json;charset=UTF-8' \
  -H 'Origin: https://apptest.teamsystemdigital.com' \
  -H 'Referer: https://apptest.teamsystemdigital.com/' \
  -H 'Sec-Fetch-Dest: empty' \
  -H 'Sec-Fetch-Mode: cors' \
  -H 'Sec-Fetch-Site: cross-site' \
  -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36' \
  -H 'X-App-Name: DIGITAL-SIGN' \
  -H 'X-App-Version: 2.25.49' \
  -H 'X-Correlation-Id: feb72f3f-6c2f-46ac-b284-76ed33b77758' \
  -H 'X-Item-Id: 01234567890' \
  -H 'X-Request-Id: clyo7ykvx0012356kaa4eu6bu' \
  -H 'X-User-Id: mail@mail.com' \
  -H 'accept-language: it' \
  -H 'sec-ch-ua: "Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  --data-raw ' {
  "hubId":"669672a810966672c74c5d88",
  "sendEmail":true
  }'

 

{
    "hubId": "60114f254a46625658841cd4",
    "sendEmail": true
}

Start signature job for multiDocuments
{
    "multiDocumentSessionId": "5f880d0a875f4f3d4574e767",
    "sendEmail": false
}
Send document to cct
{
    "hubId": "60362be0f27a686c982e6518"
}
Send documents to cct
{
    "hubIds": [
        "5ec24179e16fed0006ce7bf3",
        "5efdd0a537f55a00062db5d9",
        "5f008beb09d95c000672d688",
        "5f02b8c26b7afd0007d7344e"
    ]
}
Esempi

Signer Write

Create signer for FES

POST - rest/signer FES

curl 'https://ts-signer-write-api-test.agyo.io/api/v2/rest/signer' \
  -H 'Accept: application/json, text/plain, */*' \
  -H 'Authorization: Bearer ' \
  -H 'Connection: keep-alive' \
  -H 'Content-Type: application/json;charset=UTF-8' \
  -H 'Origin: https://apptest.teamsystemdigital.com' \
  -H 'Referer: https://apptest.teamsystemdigital.com/' \
  -H 'Sec-Fetch-Dest: empty' \
  -H 'Sec-Fetch-Mode: cors' \
  -H 'Sec-Fetch-Site: cross-site' \
  -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36' \
  -H 'X-App-Name: DIGITAL-SIGN' \
  -H 'X-App-Version: 2.25.49' \
  -H 'X-Correlation-Id: a2685e76-aa63-4dc2-8919-799878bdc132' \
  -H 'X-Item-Id: 01234567890' \
  -H 'X-Request-Id: clyoic23g0012356ke7oovfoe' \
  -H 'X-User-Id: mail@mail.com' \
  -H 'accept-language: it' \
  -H 'sec-ch-ua: "Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  --data-raw '{
  "prefixCellNumber":"+39",
  "taxRegion":"IT",
  "itemId":"01234567890",
  "birthCity":"ROMA",
  "birthCountry":"IT",
  "birthDate":"1980-01-01",
  "email":"mail@mail.com",
  "fiscalCode":"MRARSS80A01H501T",
  "cellNumber":"3333333333",
  "firstName":"MARIO",
  "lastName":"ROSSI",
  "sex":"M",
  "ownerDescription":"",
  "ownerVatNumber":"",
  "ownerTaxId":"",
  "fiscalCountry":"IT"
  }'
Create Signer for FEA

POST - rest/signer FEA Remota

curl 'https://ts-signer-write-api-test.agyo.io/api/v2/rest/signer' \
  -H 'Accept: application/json, text/plain, */*' \
  -H 'Authorization: Bearer ' \
  -H 'Connection: keep-alive' \
  -H 'Content-Type: application/json;charset=UTF-8' \
  -H 'Origin: https://apptest.teamsystemdigital.com' \
  -H 'Referer: https://apptest.teamsystemdigital.com/' \
  -H 'Sec-Fetch-Dest: empty' \
  -H 'Sec-Fetch-Mode: cors' \
  -H 'Sec-Fetch-Site: cross-site' \
  -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36' \
  -H 'X-App-Name: DIGITAL-SIGN' \
  -H 'X-App-Version: 2.25.49' \
  -H 'X-Correlation-Id: a2685e76-aa63-4dc2-8919-799878bdc132' \
  -H 'X-Item-Id: 01234567890' \
  -H 'X-Request-Id: clyoic23g0012356ke7oovfoe' \
  -H 'X-User-Id: mail@gmail.com' \
  -H 'accept-language: it' \
  -H 'sec-ch-ua: "Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  --data-raw '{
  "prefixCellNumber":"+39",
  "taxRegion":"IT",
  "itemId":"01234567890",
  "mainSignerId":null,
  "personalSeal":false,
  "firstName":"Mario",
  "lastName":"Rossi",
  "fiscalCode":"MRARSS80A01H501T",
  "email":"mail@mail.com",
  "cellNumber":"3333333333",
  "birthDate":"1980-01-01",
  "sex":"M",
  "birthCity":"Roma",
  "birthCountry":"IT",
  "ownerDescription":"",
  "ownerTaxId":"",
  "ownerVatNumber":"",
  "signatureMode":"otp",
  "fiscalCountry":"IT"
  }'
ExtraSignature FEA

POST - extraSignature/fea 

curl 'https://ts-signer-write-api-test.agyo.io/api/v2/rest/extraSignature/fea' \
  -H 'Accept: application/json, text/plain, */*' \
  -H 'Authorization: Bearer ' \
  -H 'Connection: keep-alive' \
  -H 'Content-Type: application/json;charset=UTF-8' \
  -H 'Origin: https://apptest.teamsystemdigital.com' \
  -H 'Referer: https://apptest.teamsystemdigital.com/' \
  -H 'Sec-Fetch-Dest: empty' \
  -H 'Sec-Fetch-Mode: cors' \
  -H 'Sec-Fetch-Site: cross-site' \
  -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36' \
  -H 'X-App-Name: DIGITAL-SIGN' \
  -H 'X-App-Version: 2.25.49' \
  -H 'X-Correlation-Id: 456c113e-c4cc-452a-b6ad-8dbb0a364897' \
  -H 'X-Item-Id: 01234567890' \
  -H 'X-Request-Id: clyok4g4s0012356k396g3uu1' \
  -H 'X-User-Id: mail@mail.com' \
  -H 'accept-language: it' \
  -H 'sec-ch-ua: "Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  --data-raw '{
  "transmitterId":"01234567890",
  "imagesContent":null,
  "signerId":807,
  "documentSignType":"FEA grafometrica",
  "onlyUpload":true,
  "mainSignerId":null,
  "itemData":{
	"id":"01234567890",
	"vatNumber":"32909170790",
	"city":"Padova",
	"fullAddress":"Per la Libertà 1, Padova (PD) 20202 - IT",
	"description":"AS Roma srl",
	"address":"Per la Libertà 1",
	"itemCellNumber":"3333333334",
	"itemEmail":"mail@mail.com",
	"webSite":"www.teamsystem.com",
	"policyNumber":"IFL0009971"
	},
  "useOtp":false,
  "paperSignature":false,
  "managerId":null
  }'
Create Signer FEQ

POST - rest/signer FEQ Remota

curl 'https://ts-signer-write-api-test.agyo.io/api/v2/rest/signer' \
  -H 'Accept: application/json, text/plain, */*' \
  -H 'Authorization: Bearer ' \
  -H 'Connection: keep-alive' \
  -H 'Content-Type: application/json;charset=UTF-8' \
  -H 'Origin: https://apptest.teamsystemdigital.com' \
  -H 'Referer: https://apptest.teamsystemdigital.com/' \
  -H 'Sec-Fetch-Dest: empty' \
  -H 'Sec-Fetch-Mode: cors' \
  -H 'Sec-Fetch-Site: cross-site' \
  -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36' \
  -H 'X-App-Name: DIGITAL-SIGN' \
  -H 'X-App-Version: 2.25.49' \
  -H 'X-Correlation-Id: 456c113e-c4cc-452a-b6ad-8dbb0a364897' \
  -H 'X-Item-Id: 01234567890' \
  -H 'X-Request-Id: clyok4g4s0012356k396g3uu1' \
  -H 'X-User-Id: mail@mail.com' \
  -H 'accept-language: it' \
  -H 'sec-ch-ua: "Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  --data-raw '{
  "prefixCellNumber":"+39",
  "itemId":"01234567890",
  "identificationType":"otp",
  "fiscalCode":"MRARSS80A01H501T",
  "firstName":"MARIO",
  "lastName":"ROSSI",
  "sex":"M",
  "birthCity":"ROMA",
  "birthDistrict":"RM",
  "address":"Roma 1",
  "city":"ROMA",
  "cap":"00199",
  "country":"IT",
  "birthCountry":"IT",
  "birthDate":"1980-01-01",
  "cellNumber":"3333333333",
  "email":"mail@mail.com",
  "ownerDescription":"",
  "ownerVatNumber":"",
  "ownerTaxId":"",
  "documentType":"DOCUMENTO DI IDENTITA",
  "documentNumber":"XX00000XX",
  "documentIssuer":"ROMA",
  "documentEndDate":"2100-01-01",
  "pin":null,
  "confirmPin":null,
  "fiscalCountry":"IT"
  }'