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.
No comments to display
No comments to display