Signature
- Documentazione flussi
- Descrizione Api
- ChangeLog
- Signer Read
- Signer Write
- Signature Read
- Signature Write
- Signature Config
- Digital Sign Api (DEPRECATO)
- Esempi
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:
- Firma elettronica semplice (FES)
- Remota (autenticazione tramite SecureCall o OTP SMS);
- Grafometrica
- Firma elettronica avanzata (FEA)
- Remota (autenticazione tramite SecureCall o OTP SMS);
- Grafometrica
- 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à:
-
- FES remota
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).
-
- FES grafometrica
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à:
-
- FEA remota
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)..
-
- FEA grafometrica
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:
-
- FEQ remota
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.
-
- FEQ automatica
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:
- accedere al tab firmatari;
- click su "nuovo firmarario"
- click sulla card di firma elettronica qualificata remota o di firma elettronica qualificata automatica (in base a quella che si vuole attivare);
- click su pulsante prosegui;
- 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;
- click su avanti;
- click su "download del modulo di richiesta";
- 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;
- click su "carica file" e upload documento sottoscritto così come al punto precedente;
- 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) |
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

Il processo si conclude con la risposta contenente il base64 del documento con apposta la firma.
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
- Caricamento del documento su Digital Signture

- Caricamento del documento e relative configurazioni su piattaforma IDSign

In base alle varie configurazioni effettuate, avremo attualmente due approcci per proseguire:
-
-
Firma grafometrica o parametro
sendEmailimpostato afalse(su start del job): nella risposta troveremo un link per poter atterrare sulla pagina IDSign ed effettuare le firme richieste - Tutti gli altri casi: verrà recapitata una mail ad ogni firmatario specificato nelle API contenente un link per poter atterrare sulla pagina IDSign ed effettuare le firme richieste
-
Firma grafometrica o parametro
- Click del link ricevuto: ci permette di raggiungere una pagina gestita da IDSign in cui effettuare le varie firme in base alle configurazioni precedentemente passate all'API di upload
Panoramica del processo
Gestione degli stati
Descrizione Stati
- Caricato: Stato iniziale del documento dopo l’upload sulla Console Firma
- Non_Firmabile: C’è un problema di validazione del documento (es: tipologia documento non compatibile)
- Firmabile: Tutti i firmatari del documento hanno un tipo di firma valido
- Alla_Firma: è stato avviato il job di firma su IdSign
- Parzialmente_Firmato: almeno un firmatario ha già firmato il documento (se sono >1)
- Firmato: tutti i firmatari previsti (uno o più) hanno firmato il documento
- Eliminato: è stato richiesto l’annullamento senza alcuna firma ancora effettuata
- Stralciato: è stato richiesto l’annullamento con almeno una firma effettuata
- Scaricato: stato di 2° livello, il documento è stato scaricato (da TS Studio/Azienda o da console)
- Conservato: stato di 2° livello, il documento è stato mandato in TS Digital Archive
FES/FEA remota
FES/FEA grafometrica
FEQ remota
FEQ automatica
Descrizione Api
ChangeLog
Versioni dei servizi attuali in PRODUZIONE
- signature-write (Info versione corrente)
- signature-read(Info versione corrente)
- signer-write(Info versione corrente)
- signer-read(Info versione corrente)
- signature-config(Info versione corrente)
- digital-sign-api (Info versione corrente)
- signature-authorizer-read(Info versione corrente)
- signature-authorizer-write(Info versione corrente)
Versioni dei servizi attuali in TEST
- signature-write (Info versione corrente)
- signature-read(Info versione corrente)
- signer-write(Info versione corrente)
- signer-read(Info versione corrente)
- signature-config(Info versione corrente)
- digital-sign-api (Info versione corrente)
- signature-authorizer-read(Info versione corrente)
- signature-authorizer-write(Info versione corrente)
Elenco rilascio nuove funzionalità in PRODUZIONE
- nextRelease
- 14/07/2021
- signature-write
v2.0.26 - signer-write
v2.0.17 - signature-authorizer-write
v1.2.2 - signer-read
v1.1.12 - signature-authorizer-read
v1.1.1 - signature-read
v2.0.15
- signature-write
- 14/05/2021
- signer-write
v2.0.14
- signer-write
- 03/05/2021
- signature-write
v2.0.20 - signature-read
v2.0.13 - signer-write
v2.0.12 - signer-read
v1.1.11 - signature-config
v1.0.0 - digital-sign-api
v1.2.1 - signature-authorizer-read
v1.0.4 - signature-authorizer-write
v1.1.3
- signature-write
ChangeLog
14/07/2021 Rilasciato in produzione
- signature-write
v2.0.26: fix per non inviare la mail in caso di signatureType fes - signature-authorizer-write
v1.2.1/v1.2.2: - signature-authorizer-read
v1.1.0: - signer-read
v1.1.12: - signature-read
v2.0.15
19/06/2021
- signature-write
v2.0.25: fix per invio del cambio stato di un documento tramite webhook
17/06/2021
- signer-write
v2.0.17: fix metadati per modulo FEA
16/06/2021
15/06/2021
- signer-write
v2.0.16: fix metadati per modulo FEA - signature-write
v2.0.24: fix per invio del cambio stato di un documento tramite webhook
19/05/2021
- signature-write
v2.0.21/v2.0.22/v2.0.23: aggiunto controllo sulla parte di upload async per evitare che vengano caricati pdf protetti da password, aggiunto campowebHookUrlnella request dell'upload async, aggiunta la possibilità durante l'upload async di creare sessioni di FES grafometriche con utilizzo di tavolette wacom
18/05/2021
- signer-write
v2.0.15: aggiunta la possibilità di creare la FEA cartacea con in allegato le immagine dei documenti del firmatario
14/05/2021 Rilasciato in produzione
- signer-write
v2.0.13/v2.0.14: fix aggiornamento certificati FEQ
03/05/2021 Rilasciato in produzione
30/04/2021
- digital-sign-api
v1.2.0/v1.2.1: modificate le api di lettura e scrittura per i dati aggiuntivi FEA dov'è stato eliminato il foroCompetente, eliminate api non più utilizzabili - signature-authorizer-read
v1.0.4: aggiunto /info - signature-authorizer-write
v1.1.3: fix body request, aggiunta /info - signature-config
v1.0.0: aggiunti log per i pacchetti disattivati - signature-write
v2.0.20: disattivati i controlli sulla data di scadenza(expiryDate) sul validatore per processo async, disabilitato la parte di managerId per le connessioni, rimessa chiamata al vecchio servizio per gli adempimenti - signature-read
v2.0.13: disattivato il controllo sull'obbligatorietà del campo documentIntermediaryId per la ricerca dei documenti
28/04/2021
- signature-write
v2.0.19: riattivati i controlli sulla data di scadenza(expiryDate) sul validatore per processo async
21/04/2021
- signer-write
v2.0.12: fix creazione FEA da gestore per una gestita, aggiunti log per consumi metering
15/04/2021
- signature-config
v0.0.9: fix per la ricerca delle configurazione e del sigillo con gli uffici
14/04/2021
- signature-write
v2.0.18: aggiunto controlli per l'upload async con sigillo personale - signature-config
v0.0.8: eliminato foro competente nei dati aggiuntivi - signer-write
v2.0.11: fix conteggio certificati, aggiornata creazione FEA senza foro competente - signer-read
v1.1.11: eliminato foro competente per la rigenerazione del modulo FEA cartaceo - signature-read
v2.0.12: aggiornata libreria per i permessi
13/04/2021
- signature-read
v2.0.11: aggiunto filtro per managerId sui documenti eliminati - signature-config
v0.0.7: fix lettura informazioni sigillo
31/03/2021
- signer-read
v1.1.10: fix download modulo FEA cartaceo
25/03/2021
- signer-write
v2.0.8: aggiornato modulo FEA
24/03/2021
- signature-config
v0.0.6: fix api per l'aggiunta dei dati aggiuntivi - signature-write
v2.0.16: aggiunto il campostrictExpiryDateper il processo async, fix processo async in caso di FDS
15/03/2021
- signature-config
v0.0.3: fix aggiornamento pacchetto - signer-write
v2.0.7: aggiunta una chiamata per la lettura della config prima di allocare i consumi per i certificati
12/03/2021
- signature-config
v0.0.2: aggiunte api per la scrittura e lettura degli extra data - signature-write
v2.0.15: cambiato endpoint per la lettura della configurazione del pacchetto durante l'upload di un documento
11/03/2021
- signer-write
v2.0.6: fix consumi certificati di FEQ automatica e remota
09/03/2021
- signer-write
v2.0.5: cambiato contratto per FEQ automatica/remota con l'aggiunta di numero di telefono e email
02/03/2021
- signer-write
v2.0.4: fix create fea with paperSignature
25/02/2021
- signer-write
v2.0.2/v2.0.3: fix su api v2 per mantenere la retro compatibilità:- create signer con il campo
fiscalCountrynon obbligatorio - create FEA con
useOtp - assign e unAssign request
- create signer con il campo
24/02/2021
- signer-write
v2.0.1: fix su api v1 per mantenere la retro compatibilità
23/02/2021
- signer-write
v2.0.0: introduzione api v2, modificate api per essere utilizzate anche per il servizio adempimenti - signer-read
v1.1.9: modificate api per essere utilizzate anche per il servizio adempimenti - signature-write
v2.0.14: modificate api per essere utilizzate anche per il servizio adempimenti - signature-read
v2.0.10: reso obbligatorio il campo documentIntermediaryId nella ricerca
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
Signer search
POST /v1/rest/signers/search
Permette di recuperare i firmatari di una data azienda
Query Params
pagenumero di paginaitemIdidentificativo dell'aziendasizenumero di elementi per paginafullTextpermette di fare una ricerca filtrata per alcuni dati dei firmataricertspermette di filtrare per tipologia di firma, i valori accettati sono FRM, FSM, FEA, FES (firma elettronica automatica, firma elettronica remota, firma elettronica avanzata ,firma elettronica semplice)strictCertspermette di filtrare solamente le tipologie di firma attiveserviceNamecontrollare le info su questo campo in cima al documento
La ricerca fullText viene fatta su questi dati dei firmatari
firstNamelastNamefiscalCodeownerTaxIdcodice fiscale dell'azienda su cui il firmatario e stato assegnatoownerVatNumberpartita iva dell'azienda su cui il firmatario e stato assegnatoownerDescriptionragione sociale dell'azienda su cui il firmatario e stato assegnato
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
ididentificativo del firmatario
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
itemIdidentificativo dell'aziendafiscalCodecodice fiscale del firmatario che si sta controllandoserviceNamecontrollare le info su questo campo in cima al documento
UTILS
Download Filled/Signed Document
[GET] /v1/rest/utils/download/document
Query Params
signerIdidentificativo del firmatariocertTypetipologia di certificato FRM o FSMdocumentTypetipo 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
-
signerIdidentificativo 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
itemIdidentificativo dell'azienda
Response
{
"totalFRM":3,
"freeFRM":2,
"totalFSM":3,
"freeFSM":3
}
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
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.fiscalCountrydomicilio fiscale, se valorizzato viene fatto un controllo che il valore sia 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.birthCountryse valorizzato viene fatto un controllo che il valore sia ISO 3166-1 alpha-2.birthDistrictprovincia 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.citycittà di residenza.countrynazione di residenza, se valorizzato viene fatto un controllo che il valore sia ISO 3166-1 alpha-2.district-> campo non usato, verrà dismesso.capcap di residenza, se valorizzato viene fatto un controllo che il valore sia di 5 caratteri e che contenga solo numeri.addressindirizzo di residenza.email*1 indirizzo email.prefixCellNumberprefisso 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". //TODOcellNumber*1, numero di telefono personale, solo numeri.documentIssuer*2, 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à"
-
"Patente di guida"
-
"Passaporto"
-
"Porto d'armi"
-
"Tessera di riconoscimento postale"
-
"Tessera rilasciata da PA"
ownerTaxIdcodice fiscale dell'azienda su cui il firmatario e stato assegnato .ownerVatNumberpartita iva dell'azienda su cui il firmatario e stato assegnato .ownerDescriptionragione sociale dell'azienda su cui il firmatario e stato assegnato .serviceNamecontrollare le info su questo campo in cima al documento.
{
"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" *
}
{
"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
signerIdidentificativo del firmatarioserviceNamecontrollare le info su questo campo in cima al documento
Update an existent signer
[PATCH]/v2/rest/signer/{signerId}
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 creatocitycittà di residenza.countrynazione di residenza, se valorizzato viene fatto un controllo che il valore sia ISO 3166-1 alpha-2.district-> campo non usato, verrà dismesso.capcap di residenza, se valorizzato viene fatto un controllo che il valore sia di 5 caratteri e che contenga solo numeri.addressindirizzo di residenza.emailindirizzo email.prefixCellNumberprefisso 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". //TODOcellNumbernumero di telefono personale, solo numeri.documentIssuerente che ha rilasciato il documentodocumentNumbernumero del documentodocumentEndDatedata di scadenza del documentodocumentType può assumere questi determinati valori:- "Carta d'identità"
-
"Patente di guida"
-
"Passaporto"
-
"Porto d'armi"
-
"Tessera di riconoscimento postale"
-
"Tessera rilasciata da PA"
ownerTaxIdcodice fiscale dell'azienda su cui il firmatario e stato assegnatoownerVatNumberpartita iva dell'azienda su cui il firmatario e stato assegnatoownerDescriptionragione sociale dell'azienda su cui il firmatario e stato assegnatoserviceNamecontrollare le info su questo campo in cima al documento
{
"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*1 identificativo del firmatario.profile*1 può assumere questi determinati valori:- "teamsystemTriennale"
-
"teamsystemAuto"
-
"teamsystemOneshot"
identificationProcessesarray che definisce la modalità di riconoscimento, può avere dentro questi valori:- "FEQ"
-
"SPID"
owner*1 contiene le informazioni del firmatario.owner.firstname*1.owner.lastName*1.owner.email*1.owner.phoneNumber*1.owner.fiscalCodewebhook*1 informazioni sul webhook da richiamare in fase di enrollmentwebhook.url*1 url da richiamare deve essere l'URL della signer-write/v2/rest/enrollment/callback a cui va aggiunto come parametro di query:- "signerId" *1 identificativo del firmatario
[
{
"signerId": "long",
"profile": "string",
"identificationProcesses": "string[]",
"owner": {
"firstName": "string",
"lastName": "string",
"email": "string",
"phoneNumber": "string",
"fiscalCode": "string"
},
"webhook": {
"url": "string"
}
}
]
[
{
"sessionId": "string"
}
]
Delete existing enrollment session
[DELETE]/v2/rest/enrollment/session/{sessionId}
Permette di cancellare la sessione di enrollment
*1 campo obbligatorio
Info
sessionIdidentificativo della sessione di enrollment
Resend enrollment email
[PUT]/v2/rest/enrollment/session/{sessionId}/email/send
Permette di reinviare la mail di inizio enrollment
*1 campo obbligatorio
Info
sessionIdidentificativo della sessione di enrollment
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
signerIdidentificativo del firmatario
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
signerIdidentificativo del firmatariotransmitterIdidentificativo dell'aziendaimagesContentbase64 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, .tifRicordarsi di inserire il mime type del formato, esempio: data:image/jpg;base64,/documentSignTypemetodo con cui verrà firmato il documento. I valori possibili possono essere FEA remota oFEA grafometricamainSignerIdcodice fiscale del firmatario possessore di un certificato di Firma elettronica qualificata automatica(FRM) che sigillerà il documentouseOtpvalore 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 SecureCallpaperSignaturepermette 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 usareonlyUpload=trueil valore deve essere impostato a false-
onlyUploadse impostato a true permette di firmare l'adesione FEA insieme al caricamento del primo documento.
NOTA BENE, il primo documento che si caricherà per questo firmatario dovrà avere lo stessomainSignerIde 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. itemDatadati riguardanti all'azienda a cui fa capo il firmatarioitemData.iditemData.vatNumberitemData.cityitemData.fullAddressitemData.descriptionitemData.addressitemData.itemCellNumberitemData.itemEmailitemData.policyNumberitemData.webSite
{
"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
}
Delete Extra Signature
[DELETE] /v2/rest/extraSignature/{extraSignatureId}
Permette di eliminare le extraSignature (FEA, FES) di un determinato firmatario.
Info
signerIdidentificativo del firmatarioextraSignatureIdidentificativo della FES o FEA collegate ad un firmatario
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
signerIdidentificativo del firmatariocertificateIdidentificativo del certificatoserviceNamecontrollare le info su questo campo in cima al documento
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
signerIdidentificativo del firmatariocertificateIdidentificativo del certificato che viene staccato durante la richiesta di inizializzazionefilebase64 del file pdf di richiesta pre compilato e firmato padesserviceNamecontrollare le info su questo campo in cima al documento
{
"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 |
| Nome | Cognome | Codice fiscale | ItemId | CertificateId | |
| Utente1 | Utente1 | CF1 | ITEM1 | CERT1 | |
| Utente1 | Utente1 | CF1 | ITEM2 | CERT1 |
Info
signerIdidentificativo del firmatariocertificateIdidentificativo del certificatoserviceNamecontrollare le info su questo campo in cima al documentoitemIdidentificativo dell'aziendanameragione sociale dell'azienda
{
"itemId": "string",
"name": "string"
}
Initialize an remote Feq
[POST] /v2/rest/certificate/fsm
Sostituisce API v1 /v1/rest/certificate/fsm/initialize
signerIdidentificativo del firmatarioitemIdidentificativo dell'aziendaidentificationTypepermette 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 SecureCallserviceNamecontrollare le info su questo campo in cima al documento
{
"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
signerIdidentificativo del firmatarioitemIdidentificativo dell'aziendapinvalore di 8 cifre numeriche che serviranno come pin del certificatoserviceNamecontrollare 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
certificateId*1 identificativo del certificato.signerId*1 identificativo del firmatario.profile*1 può assumere questi determinati valori:- "teamsystemTriennale"
-
"teamsystemAuto"
identificationProcessesarray che definisce la modalità di riconoscimento, può avere dentro questi valori:- "FEQ"
owner*1 contiene le informazioni del firmatario.owner.firstname*1.owner.lastName*1.owner.email*1.owner.phoneNumber*1.owner.fiscalCodewebhook*1 informazioni sul webhook da richiamare in fase di enrollmentwebhook.url*1 url da richiamare deve essere l'URL della signer-write/v2/rest/enrollment/callback a cui va aggiunto come parametro di query:- "signerId" *1 identificativo del firmatario
{
"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
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}
Update an existent signer
[PATCH] /v1/rest/signer/{signerId}
Initialize FEA
[POST] /v1/rest/extra-signature/create/fea
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] /v1/rest/extra-signature/delete
Initialize
[POST] /v1/rest/certificate/frm/initialize
[POST] /v1/rest/certificate/fsm/initialize
signerIdidentificativo del firmatarioitemIdidentificativo dell'aziendapinvalore di 8 cifre numeriche che serviranno come pin del certificatoidentificationTypepermette 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 SecureCallserviceNameil valore da inserire è SIGNATURE-FLOWsavePinva impostato sempre a true
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
{
"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 |
| 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
}
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
pagenumero di paginasizenumero di elementi per paginasortcampo per cui ordinare i documenti
Request body
pagenumero di pagina //TODO FIXsizenumero di elementi per pagina //TODO FIXsortcampo per cui ordinare i documenti //TODO FIXmanagerIdidentificativo dello studio a cui è connessa l'azienda, permette di visualizzare i documenti che lo studio ha creato per conto di una determinata aziendadocumentStatusIdstato del documentodocumentTypeIdtipo documento- documentOwnerId
- ownerCriteria.ownerType
- ownerCriteria.searchTextCriteria
- batchId
multiDocumentSessionIdid del documento multi sessione creatodocumentIntermediaryIdidentificativo azienda, campo obbligatoriocctStatusCodestato della conservazione del documentolastTimestampFromtimestamp da cui inizierà la ricerca dei documenti che sono stati aggiornati fino al momento della chiamataminCreationDatedata di creazione del documento da cui iniziare la ricercamaxCreationDatedata di creazione del documento da per finire la ricercaexpiryDatedata di scadenzasignerTextFieldsSearchCriteriapermette di effettuare una ricerca per i firmatario inseriti nei documenti, il campi in cui viene fatta la ricerca sono //chiedere a Nico
{ //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
hubIdidentificativo del documento
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
hubIdidentificativo del documento
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
Restituisce il link riguardanti una determinata sessione in stato ALLA_FIRMA divisi per firmatari per i documenti multi sessione
Query params
multiDocumentSessionIdidentificativo del documento multi sessione
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
hubIdidentificativo del documentoattachmentIdidentificativo dell'allegato, l'id dell'allegato si trova nel json del documento alla chiave attachments[].id
Download attachment
[GET] /v1/documents/{hubId}/attachment/{attachmentId}/file
Permette il download del file di eventuali allegati del documento
Path params
hubIdidentificativo del documentoattachmentIdidentificativo dell'allegato, l'id dell'allegato si trova nel json del documento alla chiave attachments[].id
Download base64 document
[GET] /v1/documents/{hubId}/download
Permette il download in base64 del documento
Path params
hubIdidentificativo del documento
Query params
signedse messo a true verrà scaricato il documento firmato sennò il documento originale
Download document
[GET] /v1/documents/{hubId}/download/file
Permette il download del file del documento
Path params
hubIdidentificativo del documento
Query params
signedse messo a true verrà scaricato il documento firmato sennò il documento originale
DOCUMENTS TYPES
Retrieve document type detail
[GET] /v1/documentTypes/{id}
Restituisce il dettaglio del singolo tipo di documento
Path params
ididentificativo del tipo di documento
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
ididentificativo dello stato di un documento
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
pagenumero di paginasizenumero di elementi per paginasortcampo per cui ordinare i documenti
Request body
pagenumero di pagina //TODO FIXsizenumero di elementi per pagina //TODO FIXsortcampo per cui ordinare i documenti //TODO FIXmanagerIdidentificativo dello studio a cui è connessa l'azienda, permette di visualizzare i documenti che lo studio ha creato per conto di una determinata aziendadocumentStatusIdstato del documentodocumentTypeIdtipo documento- documentOwnerId
- ownerCriteria.ownerType
- ownerCriteria.searchTextCriteria
- batchId
multiDocumentSessionIdid del documento multi sessione creatodocumentIntermediaryIdidentificativo azienda, campo obbligatoriocctStatusCodestato della conservazione del documentolastTimestampFromtimestamp da cui inizierà la ricerca dei documenti che sono stati aggiornati fino al momento della chiamataminCreationDatedata di creazione del documento da cui iniziare la ricercamaxCreationDatedata di creazione del documento da per finire la ricercaexpiryDatedata di scadenzasignerTextFieldsSearchCriteriapermette di effettuare una ricerca per i firmatario inseriti nei documenti, il campi in cui viene fatta la ricerca sono //chiedere a Nico
{ //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
hubIdidentificativo del documento
TEMPLATES
Get templates list
[GET] /v1/templates
Permette di avere una lista dei template creati
Query params
pagenumero di paginasizenumero di elementi per paginasortcampo per cui ordinare i documentiownerIdidentificativo azienda
Retrieve detail of single template
[GET] /v1/templates/{templateId}
Permette di recuperare tutte le info di un determinato template
Path params
templateIdid del template
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
templateIdid del templatetemplateDocumentIdin del documento
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
templateIdid del templatetemplateDocumentIdin del documento
//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.
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.
transmitterId(*) id dell'aziendamanagerIdid del commercialista dell'aziendabatchIdfileName(*) nome del file da caricarefileContent(*) base64 del file da caricare. il limite è di 15MBdocumentType(*) tipo documento, consultare qui la lista dei tipi di documento disponibilisessionNamenome personalizzato da assegnare alla sessionenotesnote aggiuntive sulla sessionethirdPartyEmailAddressesarray di indirizzi email che riceveranno il documento firmato via mailowner(*) dati relativi all'intestatario del documento, può essere una persona fisica o aziendaowner.firstNameowner.lastNameowner.companyNameragione socialeowner.vatpartita ivaowner.fiscalCodecodice fiscaleowner.kindtipo dell'intestatario. i valori possibili sono company o personmetadatadati aggiuntivi per la conservazione del documento. Chiedere info in più perchè ogni tipo di documento ha dei metadati di conservazione diversi. Oltre ai metadati specifici per la singola classe documentale, per ogni classe documentale bisogna aggiungere questi campi obbligatori:SoggettoTitolare-CodiceFiscaleSoggettoTitolare-PartitaIvaSoggettoTitolare-NomeeSoggettoTitolare-Cognomein caso di persona fisica altrimentiSoggettoTitolare-DenominazioneSoggettoTitolare-IdPaese
autoSendCCTpermette di mandare automaticamente il documento in conservazione una volta che il documento è stato firmato. Per far sì che la conservazione avvenga serve che l'azienda abbia il servizio di cct attivo e abbia inserito tutti i metadata obbligatori per lo specifico documentosignatureMode(*) i valori che può assumere sono pades o cadesmainSignerIdidentificativo di un firmatario che ha un certificato di FEQ automatica per sigillare il documento. Se si è scelto di utilizzare il sigillo TS bisogna impostarlo a nullexpiryDate(*) data di scadenza del documento, dopo 30 giorni dalla data di invio del documento alla firma per le sessioni FEA e FES e 60 giorni per le sessioni di FEQ il documento andrà automaticamente in stato scaduto se non verrà firmatostrictExpiryDatese impostato a true ed è presente una data di scadenza il documento, se non verrà firmato entro quella data, passerà in stato SCADUTO. Se invece viene impostato a false non verrà fatto il check sulla data di scadenza inserita ma saranno validi i 30/60 giorni specificati sopra per la scadenza del documentoyearanno di riferimento del documentosignatureProcessName(*) tipo di processo di firma. I valori possono essere:- FEA remota
- FEA grafometrica
- FES remota
- FES grafometrica
- FEQ remota
- FEQ con dispositivo fisico
areSignersOrdered:: parametro che serve per specificare che i firmatari devono essere ordinati e devono firmare in modo consecutivoattachmentseventuali allegati del documento. In questa fase, gli allegati verranno solo specificati mentre il caricamento verrà effettuato durante il processo di firma della sessioneattachments.description: descrizione dell'allegatoattachments.signerFiscalCode: codice fiscale del firmatario a cui richiedere l'allegato (deve essere presente tra i firmatari)attachments.details: array dei file che verranno richiesti nella sessione di firma. Indipendentemente dal numero di attachments.details specificati il risultato finale sarà un PDF con l'aggregazione dei details di un singolo allegato.attachments.details.description: descrizione del file da caricareattachments.details.optional: impostare a true se non si vuol rendere l'allegato obbligatoriosigners(*) array di firmatari che devono firmare il documentosigners.fiscalCodesigners.firstNamesigners.lastNamesigners.emailemail del firmatariosigners.mobilenumero del telefono cellulare del firmatario, verrà utilizzato per la sessione di firmasigners.canEmailBeSentAgain//TODO DA ELIMINAREsigners.signatureDataarray delle area di firma del firmatario sul documentosigners.signatureData.signatureTypeidentifica il tipo di firma che verrà effettuata, tutte le area di firma sul documento devono avere lo stesso valore. I tipi disponibili sono:- SecureCall tipologia disponibile per FEA remota e FES remota
- otp tipologia disponibile per FEA remota e FES remota
- BioSignature tipologia che serve per la FEA grafometrica in presenza
- BioSignatureRemote tipologia che serve per la FEA grafometrica da remoto
- fes_noservice tipologia che serve per la FES grafometrica in presenza
- fes_noservice_remote tipologia che serve per la FES grafometrica da remoto
- fes tipologia che serve per la FES grafometrica con ausilio di tavoletta grafometrica Wacom
- FSM tipologia che serve per la FEQ remota, il valore può essere oltre a FSM anche FDS se il certificato di firma qualificata remota è stato richiesto con il metodo di autenticazione otp
- FSC tipologia che serve per la FEQ Remota con dispositivo fisico
signers.signatureData.fieldGrouppuò essere valorizzato con un valore personalizzato. Se lo stesso fieldGroup verrà messo su più aree di firma il firmatario le firmerà contemporaneamente altrimenti verrà richiesta una firma per ogni singola aree di firma presente sul documentosigners.signatureData.shortDescriptiondescrizione corta dell'area sul documento. Limite caratteri tra 5 e 20signers.signatureData.longDescriptiondescrizione lunga dell'area sul documento. Limite caratteri 100signers.signatureData.optionalimpostare a true se non si vuol rendere l'area di firma obbligatoriasigners.signatureData.textTypeidentifica il tipo di area sul documento. Se non impostato di default verrà messo come area di firma. Il documento deve contenere almeno un area di firma per essere valido. I tipi possono essere:- signature area di firma
- checkbox per inserire una checkbox, oltre al textType dovrà essere inserito come longDescription il titolo che si vuole avere la selezione o meno della checkbox
- radiobutton per inserire un radio button, oltre al textType le varie scelte del radio button dovranno avere sia la
longDescription che il fieldGroup uguale per ogni casella di scelta del radio button. La shortDescription identificherà le varie opzioni. Vedere esempio
- text per inserire del testo, oltre al textType dovrà essere inserito come longDescription il titolo che si vuole avere per la sezione
signers.signatureData.positioningStrategyidentifica il tipo di posizionamento che verrà usato per le varie aree sul documento. I valori possono essere:- coords vengono utilizzate delle coordinate per identificare il posizionamento
-
textPattern viene utilizzato un id all'interno del documento che farà da riferimento per il posizionamento
coordsRegion.pagecoordsRegion.h-
coordsRegion.w -
coordsRegion.x coordsRegion.ytextPatternRegion.patternidentificativo sul documento dell'area-
textPatternRegion.h textPatternRegion.wtextPatternRegion.offsetXtextPatternRegion.offsetYmultipleDocumentSessionse impostato a true il documento farà parte di una sessione multi documento (più documenti verrano firmati con un unica sessione di firma)useSignatureTimestamppermette di applicare una marca temporale al documentosendSignedDocumentToMailse impostato a true i firmatari presenti nel documento alla fine della firma del documento riceveranno una mail con in allegato il documento firmatowebHookUrlpermette di specificare un url dove verranno mandati gli eventi relativi all'aggiornamento di stato del documento.
Esempio del body del webhook che verrà mandatoafterSignRedirectUrlpermette di specificare un url su cui l'utente verra reindirizzato a processo di firma terminato.
{
"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
}
Upload file and download signed document
[POST] /v1/rpc/upload/sync
Permette il caricamento di un file seguendo il processo sincrono
Request body
transmitterIdid dell'aziendamanagerIdid del commercialista dell'azienda- batchId
fileNamenome del file da caricarefileContentbase64 del file da caricare. il limite è di 30MBdocumentTypetipo documento, consultare qui la lista dei tipi disponibiliownerdati relativi all'intestatario del documento, può essere una persona fisica o aziendaowner.firstNameowner.lastNameowner.companyNameragione socialeowner.vatpartita ivaowner.fiscalCodecodice fiscaleowner.kindtipo dell'intestatario. i valori possibili sono company o personmetadatadati aggiuntivi per la conservazione del documento. Chiedere info in più perchè ogni tipo di documento ha dei metadati di conservazione diversi. Oltre ai metadati specifici per la singola classe documentale per ogni classe documentale bisogna aggiungere questi campi obbligatori:SoggettoTitolare-CodiceFiscaleSoggettoTitolare-PartitaIvaSoggettoTitolare-NomeeSoggettoTitolare-Cognomein caso di persona fisica sennòSoggettoTitolare-DenominazioneSoggettoTitolare-IdPaese
autoSendCCTpermette di mandare automaticamente il documento in conservazione una volta che il documento è stato firmato, per far si che la conservazione avvenga serve che l'azienda abbia il servizio di cct attivo e abbia inserito tutti i metadata obbligatori per lo specifico documentosignatureModei valori che può assumere sono pades o cades o xadessignerfirmatario con un certificato di FEQ automaticasigner.fiscalCodesigner.firstNamesigner.lastNamesigner.emailemail del firmatariosigner.mobilenumero del telefono cellulare del firmatariosigner.canEmailBeSentAgain//TODO DA ELIMINAREpindeprecatouseSignatureTimestamppermette di applicare una marca temporale al documentowithoutFilese impostato a true nella response non verrà riportato il base64 del file firmato
{
"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
transmitterIdid dell'aziendamanagerIdid del commercialista dell'aziendabatchIdfileNamenome del file da caricarefileContentbase64 del file da caricare. il limite è di 15MBdocumentTypetipo documento, consultare qui la lista dei tipi disponibilisessionNamenome personalizzato da assegnare alla sessionenotesnote aggiuntive sulla sessioneownerdati relativi all'intestatario del documento, può essere una persona fisica o aziendaowner.firstNameowner.lastNameowner.companyNameragione socialeowner.vatpartita ivaowner.fiscalCodecodice fiscaleowner.kindtipo dell'intestatario. i valori possibili sono company o personmetadatadati aggiuntivi per la conservazione del documento. Chiedere info in più perchè ogni tipo di documento ha dei metadati di conservazione diversi. Oltre ai metadati specifici per la singola classe documentale per ogni classe documentale bisogna aggiungere questi campi obbligatori:SoggettoTitolare-CodiceFiscaleSoggettoTitolare-PartitaIvaSoggettoTitolare-NomeeSoggettoTitolare-Cognomein caso di persona fisica sennòSoggettoTitolare-DenominazioneSoggettoTitolare-IdPaese
autoSendCCTpermette di mandare automaticamente il documento in conservazione una volta che il documento è stato firmato, per far si che la conservazione avvenga serve che l'azienda abbia il servizio di cct attivo e abbia inserito tutti i metadata obbligatori per lo specifico documentosignatureModei valori che può assumere sono pades o cadesmainSignerIdidentificativo di un firmatario che ha un certificato di FEQ automatica per sigillare il documento. Se si scelto di utilizzare il sigillo TS bisogna impostarlo a nullexpiryDatedata di scadenza del documento, dopo 30 giorno dalla data di invio del documento alla firma per le sessioni FEA e FES e 60 giorni per le sessioni di FEQ il documento andrà automaticamente in stato scaduto se non verrà firmatostrictExpiryDatese impostato a true ed è presente una data di scadenza il documento se non verrà firmato entro quella data passerà in stato SCADUTO se invece viene impostato a false non verrà fatto il check sulla data di scadenza inserita ma saranno validi i 30/60 giorni specificati sopra per la scadenza del documentoyearanno di riferimento del documentosignatureProcessNametipo di processo di firma. I valori possono essere:- FEA remota
- FEA grafometrica
- FES remota
- FES grafometrica
- FEQ remota
- FEQ con dispositivo fisico
areSignersOrdered:: parametro che serve per specificare che i firmatari devo essere ordinati e devono firmare in modo consecutivoattachmentseventuali allegati del documento, gli allegati qui verrano solo specificati mentre il caricamento verrà effettuato durante il processo di firma della sessioneattachments.description: descrizione dell'allegatoattachments.signerFiscalCode: codice fiscale del firmatario a cui richiedere l'allegato (deve essere presente tra i firmatari)attachments.details: array dei file che verranno richiesti nella sessione di firma. Indipendentemente dal numero di attachments.details specificati il risultato finale sarà un PDF con l'aggregazione dei details di un singolo allegato.attachments.details.description: descrizione del file da caricareattachments.details.optional: impostare a true se non si vuol rendere l'allegato obbligatoriosignersarray di firmatari che devono firmare il documentosigners.fiscalCodesigners.firstNamesigners.lastNamesigners.emailemail del firmatariosigners.mobilenumero del telefono cellulare del firmatario, verrà utilizzato per la sessione di firmasigners.enrollmentInfooggetto che consente di passare le informazioni di un firmatario al quale si vuole attivare un certificato di firma qualificata per potergli poi far firmare un documento, al quale devono essere passate le seguenti property:signerIdidentificativo del firmatario.profileche può avere uno dei questi determinati valori:- "teamsystemTriennale"
-
"teamsystemAuto"
-
"teamsystemOneshot"
identificationProcessesarray che definisce la modalità di riconoscimento, i valori ammessi sono:- "FEQ"
-
"SPID"
enrollmentOwnerinformazioni del firmatario.enrollmentOwner.firstnameenrollmentOwner.lastNameenrollmentOwner.emailenrollmentOwner.phoneNumberenrollmentOwner.fiscalCode(facoltativo)signers.signatureDataarray delle area di firma del firmatario sul documentosigners.signatureData.signatureTypeidentifica il tipo di firma che verrà effettuata, tutte le area di firma sul documento devono avere lo stesso valore. I tipi disponibili sono:- SecureCall tipologia disponibile per FEA remota e FES remota
- otp tipologia disponibile per FEA remota e FES remota
- BioSignature tipologia che serve per la FEA grafometrica in presenza
- BioSignatureRemote tipologia che serve per la FEA grafometrica da remoto
- fes_noservice tipologia che serve per la FES grafometrica in presenza
- fes_noservice_remote tipologia che serve per la FES grafometrica da remoto
- fes tipologia che serve per la FES grafometrica con ausilio di tavoletta grafometrica Wacom
- FSM tipologia che serve per la FEQ remota, il valore può essere oltre a FSM anche FDS se il certificato di firma qualificata remota è stato richiesto con il metodo di autenticazione otp
- FSC tipologia che serve per la FEQ Remota con dispositivo fisico
signers.signatureData.fieldGrouppuò essere valorizzato con un valore personalizzato, se lo stesso fieldGroup verrà messo su più aree di firma il firmatario le firmerà contemporaneamente sennò verrà richiesta una firma per ogni singola aree di firma presente sul documentosigners.signatureData.shortDescriptiondescrizione corta dell'area sul documento Limite caratteri tra 5 e 20signers.signatureData.longDescriptiondescrizione lunga dell'area sul documento. Limite caratteri 100signers.signatureData.optionalimpostare a true se non si vuol rendere l'area di firma obbligatoriasigners.signatureData.textTypeidentifica il tipo di area sul documento, se non impostato di default verrà messo come area di firma. Il documento deve contenere almeno un area di firma per essere valido. I tipi possono essere:- signature area di firma
- checkbox per inserire una checkbox, oltre al textType dovrà essere inserito come longDescription il titolo che si vuole avere la selezione o meno della checkbox
- radiobutton per inserire un radio button, oltre al textType le varie scelte del radio button dovranno avere sia la
longDescription che il fieldGroup uguale per ogni casella di scelta del radio button. La shortDescription identificherà le varie opzioni. Vedere esempio
- text per inserire del testo, oltre al textType dovrà essere inserito come longDescription il titolo che si vuole avere per la sezione
signers.signatureData.positioningStrategyidentifica il tipo di posizionamento che verrà usato per le varie aree sul documento. I valori possono essere:- coords vengono utilizzate delle coordinate per identificare il posizionamento
-
textPattern viene utilizzato un id all'interno del documento che farà da riferimento per il posizionamento
coordsRegion.pagecoordsRegion.h-
coordsRegion.w -
coordsRegion.x coordsRegion.ytextPatternRegion.patternidentificativo sul documento dell'area-
textPatternRegion.h textPatternRegion.wtextPatternRegion.offsetXtextPatternRegion.offsetYmultipleDocumentSessionse impostato a true il documento farà parte di una sessione multi documento (più documenti verrano firmati con un unica sessione di firma)useSignatureTimestamppermette di applicare una marca temporale al documentosendSignedDocumentToMailse impostato a true i firmatari presenti nel documento alla fine della firma del documento riceveranno una mail con in allegato il documento firmatowebHookUrlpermette di specificare un url dove verranno mandati gli eventi relativi all'aggiornamento di stato del documento.afterSignRedirectUrlpermette di specificare un url su cui l'utente verra reindirizzato a processo di firma terminato.
Esempio del body del webhook che verrà mandato
{
"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
}
Upload file and download signed document
[POST] /v2/rpc/upload/sync
Permette il caricamento di un file seguendo il processo sincrono
Request body
transmitterIdid dell'aziendamanagerIdid del commercialista dell'azienda- batchId
fileNamenome del file da caricarefileContentbase64 del file da caricare. il limite è di 30MBdocumentTypetipo documento, consultare qui la lista dei tipi disponibiliownerdati relativi all'intestatario del documento, può essere una persona fisica o aziendaowner.firstNameowner.lastNameowner.companyNameragione socialeowner.vatpartita ivaowner.fiscalCodecodice fiscaleowner.kindtipo dell'intestatario. i valori possibili sono company o personmetadatadati aggiuntivi per la conservazione del documento. Chiedere info in più perchè ogni tipo di documento ha dei metadati di conservazione diversi. Oltre ai metadati specifici per la singola classe documentale per ogni classe documentale bisogna aggiungere questi campi obbligatori:SoggettoTitolare-CodiceFiscaleSoggettoTitolare-PartitaIvaSoggettoTitolare-NomeeSoggettoTitolare-Cognomein caso di persona fisica sennòSoggettoTitolare-DenominazioneSoggettoTitolare-IdPaese
autoSendCCTpermette di mandare automaticamente il documento in conservazione una volta che il documento è stato firmato, per far si che la conservazione avvenga serve che l'azienda abbia il servizio di cct attivo e abbia inserito tutti i metadata obbligatori per lo specifico documentosignatureModei valori che può assumere sono pades o cades o xadessignerfirmatario con un certificato di FEQ automaticasigner.fiscalCodesigner.firstNamesigner.lastNamesigner.emailemail del firmatariosigner.mobilenumero del telefono cellulare del firmatariosigner.canEmailBeSentAgain//TODO DA ELIMINAREpindeprecatowithoutFilese impostato a true nella response non verrà riportato il base64 del file firmato
{
"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
hubIdidentificativo del documentosendEmaildefault = true, permette di ricevere una mail con il link per la sessione di firma per ogni firmatario
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
multiDocumentSessionIdid del documento multi sessionesendEmaildefault = true, permette di ricevere una mail con il link per la sessione di firma per ogni firmatario
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
hubIdidentificativo del documentosendEmaildefault = true, permette di ricevere una mail con il link per la sessione di firma per ogni firmatario
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
multiDocumentSessionIdid del documento multi sessionesendEmaildefault = true, permette di ricevere una mail con il link per la sessione di firma per ogni firmatario
Cancel signature job
[POST] /v2/jobs/cancel
Permette di cancellare una sessione di firma
Request body
hubIdid del documento in sessionemultiDocumentSessionIdid della multi sessione
CCT
Send document to cct
[POST] /v1/cct/send
Permette di inviare un documento in conservazione
Request body
hubIdidentificativo del documento
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
hubIdsarray di hubId
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
hubIdidentificativo del documentofiscalCodesarray dei codici fiscali dei firmatari presenti all'interno del documento che devono ricevere di nuovo la mail
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
hubIdidentificativo del documento
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
multiDocumentSessionIdid del documento multi sessione
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
hubIdidentificativo del documento
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
multiDocumentSessionIdid del documento multi sessione
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
hubIdidentificativo del documento
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.
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
itemIdidentificativo dell'azienda. Come valore accetta sia il vecchio valore dell'id (codice fiscale/p.iva) sia uuid
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
itemIdidentificativo dell'azienda
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
itemIdidentificativo dell'azienda
Request Body
webSitedefault https://agyo.elevio.help/it/articles/477-
cellNumber email-
policyNumberdefault IFL0009971
SEAL
Get seal info for specify item
[GET] /seal
Permette di recuperare le informazioni sul sigillo per una specifica azienda
Query params
uuididentificativo uuid dell'azienda
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
uuididentificativo uuid dell'aziendapersonalSealse messo a true verrà utilizzato il certificato di firma di un firmatario per sigillare i documenti se invece messo a false verrà utilizzato il certificato di firma di TeamSystempersonalSealDefaultin caso di personalSeal a true si può impostare il cf del firmatario titolare del certificato di firma qualificata automatica che sigillerà tutti i documenti
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
itemIdidentificativo dell'azienda
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
itemIdidentificativo dell'azienda
Request Body
webSitedefault https://agyo.elevio.help/it/articles/477-
cellNumber email-
policyNumberdefault IFL0009971
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
{
"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"
]
}
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"
}'

