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
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 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 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
- FEA remota
- FEQ remota
areSignersOrdered//TODOattachmentseventuali 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.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
- fes_noservice tipologia che serve per la FES grafometrica
- 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
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
{
"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",
"mainSignerId": "string",
"expiryDate": "string",
"year": 0,
"signatureProcessName": "string",
"areSignersOrdered": true,
"webHookUrl": "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 ELIMINAREpindeprecatowithoutFile//TODO
{
"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 documentosendMaildefault = 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 sessionesendMaildefault = true, permette di ricevere una mail con il link per la sessione di firma per ogni firmatario
Cancel signature job
[POST] /v1/jobs/cancel
//TODO
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.