Skip to main content

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

    transmitterId id dell'azienda managerId id del commercialista dell'azienda batchId fileName nome del file da caricare fileContent base64 del file da caricare. il limite è di 15MB documentType tipo documento, consultare qui la lista dei tipi disponibili

    owner dati relativi all'intestatario del documento, può essere una persona fisica o un azienda owner.firstName owner.lastName owner.companyName ragione sociale owner.vat partita iva owner.fiscalCode codice fiscale owner.kind tipo dell'intestatario. i valori possibili sono company o person

    metadata dati aggiuntivi per la conservazione del documento. Chiedere info in più perchè ogni tipo di documento ha dei metadati di conservazione diversi autoSendCCT permette 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 documento signatureMode  i valori che può assumere sono pades o cades mainSignerId identificativo del firmatario che il certificato di Feq automatica che servirà per sigillare il documento. //TODO  expiryDate data di scadenza del documento //TODO year anno di riferimento del documento signatureProcessName //TODO areSignersOrdered //TODO


    attachments eventuali allegati del documento, gli allegati qui verrano solo specificati mentre il caricamento verrà effettuato durante il processo di firma della sessione attachments.description: descrizione dell'allegato attachments.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 caricare attachments.details.optional: impostare a true se non si vuol rendere l'allegato obbligatorio


    signers array di firmatari che devono firmare il documento signers.fiscalCode signers.firstName signers.lastName signers.email email del firmatario signers.mobile numero del telefono cellulare del firmatario, verrà utilizzato per la sessione di firma signers.canEmailBeSentAgain //TODO DA ELIMINARE

    signers.signatureData array delle area di firma del firmatario sul documento signers.signatureData.signatureType signers.signatureData.fieldGroup signers.signatureData.shortDescription signers.signatureData.longDescription signers.signatureData.textType signers.signatureData.positioningStrategy signers.signatureData.optional impostare a true se non si vuol rendere l'area di firma obbligatoria



    multipleDocumentSession se impostato a true il documento farà parte di una sessione multi documento (più documenti verrano firmati con un unica sessione di firma) useSignatureTimestamp permette di applicare una marca temporale al documento sendSignedDocumentToMail se impostato a true i firmatari presenti nel documento alla fine della firma del documento riceveranno una mail con in allegato il documento 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",
        "mainSignerId": "string",
        "expiryDate": "string",
        "year": 0,
        "signatureProcessName": "string",
        "areSignersOrdered": true,
        "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

      Desc


      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

        hubId identificativo del documento sendMail default = 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

          multiDocumentSessionId id del documento multi sessione sendMail default = 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

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

              hubIds array di hubId
              MAIL

              Resend signature mail

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

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

              Request body

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

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

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

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

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

                          hubId identificativo del documento
                          TEMPLATE

                          Titolo

                           

                          Desc


                          Titolo

                           

                          Desc


                          Titolo

                           

                          Desc


                          Titolo

                           

                          Desc


                          Titolo

                           

                          Desc


                          Titolo

                           

                          Desc


                           

                           
                           
                           
                           
                           
                           
                           

                           

                              "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
                                          }
                                      ]
                                  }
                              ],

                           



                          Upload Async Multi Doc
                          POST /v1/rpc/upload/async/multiUpload 

                          Permette il caricamento di più documenti che poi verrano firmati in un unica sessione di firma. I documenti dovranno avere in comune

                              stessa modalità di firma

                              stessa modalità di autenticazione

                              stessa applicabilità della marca temporale

                              stesso mainSignerId stesso transmitterId

                              Con il parametro autoStartIdSignSession settato a true, l'api manderà alla firma tutti i documenti in un unica sessione appena il caricamento di tutti i file su storage è avvenuto.

                              Come body della request va passato un array di documenti

                              [
                                  {
                                      "transmitterId": "MNNRFL96D21I829W",
                                      "mainSignerId": "MNNRFL96D21I829W",
                                      "expiryDate": "30/04/2020",
                                      "year": "2020",
                                      "fileName": "sample1.pdf",
                                      "fileContent": "base64",
                                      "documentType": "0000",
                                      "signatureProcessName": "FEA remota",
                                      "owner": {
                                          "fiscalCode": "MNNRFL96D21I829W",
                                          "companyName": "Azienda1",
                                          "kind": "company"
                                      },
                                      "signatureMode": "pades",
                                      "autoSendCCT": false,
                                      "signers": [
                                          {
                                              "firstName": "Raffaele",
                                              "lastName": "Mainini",
                                              "email": "rmainini@mondora.com",
                                              "mobile": "",
                                              "fiscalCode": "MNNRFL96D21I829W",
                                              "signatureData": [
                                                  {
                                                      "shortDescription": "Firma1",
                                                      "longDescription": "1",
                                                      "signatureType": "otp", //tutti i documenti devono avere la stessa signatureType
                                                      "optional": false,
                                                      "positioningStrategy": "coords",
                                                      "fieldGroup": "fieldGroup",
                                                      "coordsRegion": {
                                                          "page": 1,
                                                          "h": 0.05,
                                                          "w": 0.25,
                                                          "x": "0.03",
                                                          "y": "0.03"
                                                      }
                                                  }
                                              ]
                                          }
                                      ],
                                      "metadata": {},
                                      "areSignersOrdered": false
                                  },
                                  {
                                      "transmitterId": "MNNRFL96D21I829W",
                                      "mainSignerId": "MNNRFL96D21I829W",
                                      "expiryDate": "30/04/2020",
                                      "year": "2020",
                                      "fileName": "sample2.pdf",
                                		"fileContent": "base64",
                                      "documentType": "0000",
                                      "signatureProcessName": "FEA remota",
                                      "owner": {
                                          "fiscalCode": "MNNRFL96D21I829W",
                                          "companyName": "Azienda2",
                                          "kind": "company"
                                      },
                                      "signatureMode": "pades",
                                      "autoSendCCT": false,
                                      "signers": [
                                          {
                                              "firstName": "Raffaele",
                                              "lastName": "Mainini",
                                              "email": "rmainini@mondora.com",
                                              "mobile": "",
                                              "fiscalCode": "MNNRFL96D21I829W",
                                              "signatureData": [
                                                  {
                                                      "shortDescription": "Firma1",
                                                      "longDescription": "1",
                                                      "signatureType": "otp",
                                                      "optional": false,
                                                      "positioningStrategy": "coords",
                                                      "fieldGroup": "fieldGroup",
                                                      "coordsRegion": {
                                                          "page": 1,
                                                          "h": 0.05,
                                                          "w": 0.25,
                                                          "x": "0.03",
                                                          "y": "0.03"
                                                      }
                                                  }
                                              ]
                                          }
                                      ],
                                      "metadata": {},
                                      "areSignersOrdered": false
                                  },  {
                                      "transmitterId": "MNNRFL96D21I829W",
                                      "mainSignerId": "MNNRFL96D21I829W",
                                      "expiryDate": "30/04/2020",
                                      "year": "2020",
                                      "fileName": "sample3.pdf",
                               		"fileContent": "base64",   
                                      "documentType": "0000",
                                      "signatureProcessName": "FEA remota",
                                      "owner": {
                                          "fiscalCode": "MNNRFL96D21I829W",
                                          "companyName": "Azienda3",
                                          "kind": "company"
                                      },
                                      "signatureMode": "pades",
                                      "autoSendCCT": false,
                                      "signers": [
                                          {
                                              "firstName": "Raffaele",
                                              "lastName": "Mainini",
                                              "email": "rmainini@mondora.com",
                                              "mobile": "",
                                              "fiscalCode": "MNNRFL96D21I829W",
                                              "signatureData": [
                                                  {
                                                      "shortDescription": "Firma1",
                                                      "longDescription": "1",
                                                      "signatureType": "otp",
                                                      "optional": false,
                                                      "positioningStrategy": "coords",
                                                      "fieldGroup": "fieldGroup",
                                                      "coordsRegion": {
                                                          "page": 1,
                                                          "h": 0.05,
                                                          "w": 0.25,
                                                          "x": "0.03",
                                                          "y": "0.03"
                                                      }
                                                  }
                                              ]
                                          }
                                      ],
                                      "metadata": {},
                                      "areSignersOrdered": false
                                  }
                                
                              ]

                              Response

                              {
                                  "hubIds": [
                                      "5ea1b3c73460de1e28b5f05a",
                                      "5ea1b3c83460de1e28b5f05b",
                                      "5ea1b3c83460de1e28b5f05c",
                                      "5ea1b3c83460de1e28b5f05d",
                                      "5ea1b3c83460de1e28b5f05e",
                                      "5ea1b3c83460de1e28b5f05f",
                                      "5ea1b3c93460de1e28b5f060",
                                      "5ea1b3c93460de1e28b5f061"
                                  ],
                                  "batchId": "bb6ecb06-3796-4193-b813-25f8efceb6bb", // il batchId servirà in fase di lettura per recuperare tutti documenti di una sessione
                                  "url": "https://appdev.teamsystemdigital.com/portale/#/MNNRFL96D21I829W/apps/firma/list/batchId/bb6ecb06-3796-4193-b813-25f8efceb6bb",
                                  "errors": null,
                                  "documentsInError": 0,
                                  "documentsCreated": 0
                              }


                              Upload Sync
                              POST /v1/rpc/upload/sync 

                              Permette il caricamento di un file da firmare seguendo il processo sincrono


                               

                              Start Jobs
                              POST /v1/jobs/start 

                              Permette di mandare alla firma un documento. 

                              {
                                  "hubId": "5e9711e301be5d000720fc05",
                                  "sendEmail": true //può non esssere messo visto che ti default è sempre true, per ora l'invio avviene solamente tramite mail
                              }

                              In caso di più documenti caricati tramite l'api /v1/rpc/upload/async/multiUpload dovrà essere settato il queryParams multiSession=true e dovrà essere passato come body un hubId di quelli ricevuti nella risposta dell'upload.

                              Esempio 

                              //RESPONSE MULTI UPLOAD
                              {
                                  "hubIds": [
                                      "5ea1b3c73460de1e28b5f05a",
                                      "5ea1b3c83460de1e28b5f05b",
                                      "5ea1b3c83460de1e28b5f05c", //HUBID PER LA CHIAMATA
                                  ],
                                  "batchId": "bb6ecb06-3796-4193-b813-25f8efceb6bb",
                                  "url": "https://appdev.teamsystemdigital.com/portale/#/MNNRFL96D21I829W/apps/firma/list/batchId/bb6ecb06-3796-4193-b813-25f8efceb6bb",
                                  "errors": null,
                                  "documentsInError": 0,
                                  "documentsCreated": 0
                              }
                              // BODY REQUEST START JOB
                              {
                                  "hubId": "5ea1b3c83460de1e28b5f05c",
                              }

                               



                              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.