Skip to main content

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

    page numero di pagina size numero di elementi per pagina sort campo per cui ordinare i documenti

    Info

      page numero di pagina //TODO FIX size numero di elementi per pagina //TODO FIX sort campo per cui ordinare i documenti //TODO FIX managerId identificativo dello studio a cui è connessa l'azienda, permette di visualizzare i documenti che lo studio ha creato per conto di una determinata azienda documentStatusId stato del documento documentTypeId tipo documento documentOwnerId  ownerCriteria.ownerType ownerCriteria.searchTextCriteria batchId multiDocumentSessionId id del documento multi sessione creato documentIntermediaryId identificativo azienda, campo obbligatorio cctStatusCode stato della conservazione del documento lastTimestampFrom timestamp da cui inizierà la ricerca dei documenti che sono stati aggiornati fino al momento della chiamata minCreationDate data di creazione del documento da cui iniziare la ricerca maxCreationDate data di creazione del documento da per finire la ricerca expiryDate data di scadenza signerTextFieldsSearchCriteria permette 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

        hubId identificativo 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

          hubId identificativo 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

          Query Params

            multiDocumentSessionId identificativo 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

              hubId identificativo del documento attachmentId identificativo 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

                hubId identificativo del documento attachmentId identificativo 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

                  hubId identificativo del documento

                  Query Params

                    signed se 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

                      hubId identificativo del documento

                      Query Params

                        signed se 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

                          id identificativo 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

                            id identificativo 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

                              page numero di pagina size numero di elementi per pagina sort campo per cui ordinare i documenti

                              Info

                                page numero di pagina //TODO FIX size numero di elementi per pagina //TODO FIX sort campo per cui ordinare i documenti //TODO FIX managerId identificativo dello studio a cui è connessa l'azienda, permette di visualizzare i documenti che lo studio ha creato per conto di una determinata azienda documentStatusId stato del documento documentTypeId tipo documento documentOwnerId  ownerCriteria.ownerType ownerCriteria.searchTextCriteria batchId multiDocumentSessionId id del documento multi sessione creato documentIntermediaryId identificativo azienda, campo obbligatorio cctStatusCode stato della conservazione del documento lastTimestampFrom timestamp da cui inizierà la ricerca dei documenti che sono stati aggiornati fino al momento della chiamata minCreationDate data di creazione del documento da cui iniziare la ricerca maxCreationDate data di creazione del documento da per finire la ricerca expiryDate data di scadenza signerTextFieldsSearchCriteria permette 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

                                  hubId identificativo del documento
                                  TEMPLATES

                                   


                                  Get templates list

                                  [GET] ​/v1​/templates

                                  Permette di avere una lista dei template creati

                                  Query Params

                                    page numero di pagina size numero di elementi per pagina sort campo per cui ordinare i documenti ownerId identificativo azienda

                                     


                                    Retrieve detail of single template

                                     

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

                                    Permette di recuperare tutte le info di un determinato template

                                    Path Params

                                      templateId id 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

                                        templateId id del template templateDocumentId in 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

                                          templateId id del template templateDocumentId in 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.