Integrations and API

DigiSign inside your systems

Send documents for signature from your own system, follow the status and get the signed files back, with no manual work. A REST API with JSON and an access key.

Version
1.9.0
Address
https://{instance}.digisign.space/api/external/v1
Access
apiKey: …
Format
REST · JSON

What customers use it for

  • Automatic signing

    The document is generated in your system and goes out for signature with no manual work.

    create
  • Status in real time

    Your system is notified of every status change (callbackUrl), or checks the status itself.

    status
  • Back to the archive

    The signed document is downloaded and stored in your archive or the employee file.

    downloadSigned
  • UniCredit Bulbank

    At UniCredit Bulbank the process is fully automated: from generating the documents, through sending them for signature, to storing them in an archive system.

    The story (in Bulgarian)

Getting started

  1. Access key

    The key (apiKey) is provided by the DigiSign administrator for your application.

  2. Address

    Every customer has their own application: replace {instance} with yours.

  3. Header

    Every request carries the key in the apiKey header.

bash
curl "https://{instance}.digisign.space/api/external/v1/settings/channels" \
  -H "apiKey: YOUR_API_KEY"
Reference

Settings

Document types and signing channels set up in your application.

Document types

GET/settings/typesOfDocuments

Returns the document types configured in DigiSign.

No parameters.

bash
curl "https://{instance}.digisign.space/api/external/v1/settings/typesOfDocuments" \
  -H "apiKey: YOUR_API_KEY"
Response 200
{
  "documentTypes": [
    {
      "id": 0,
      "shortName": "string",
      "name": "string",
      "description": "string",
      "active": true
    }
  ]
}

200401

Signing channels

GET/settings/channels

Returns the signing channels, whether they are enabled and have signatures left in the packages, the tablets (Signatus) and the people set up for automatic signing (B-Trust).

No parameters.

bash
curl "https://{instance}.digisign.space/api/external/v1/settings/channels" \
  -H "apiKey: YOUR_API_KEY"
Response 200
{
  "channels": [
    {
      "id": "BTRUST",
      "name": "string",
      "priority": 0,
      "enabled": true,
      "hasAvailableSignings": true,
      "oneTimeSigning": true,
      "signatusDevices": [
        {
          "deviceId": "string",
          "location": "string",
          "name": "string",
          "enabled": true
        }
      ],
      "autoSigners": [
        {
          "identifier": "string",
          "names": "string"
        }
      ]
    }
  ]
}

200401

Reference

Signature requests

Create, update, check, download and cancel signature requests; 1-Click-Sign codes.

Create a signature request

POST/signRequests/create

Creates a request with one or more documents (PDF or XML, base64) and the signers in the order they must sign. It can set a deadline, a reminder, a folder, tags, an email for the signed file and an address to call when the status changes.

Request body

FieldTypeDescription
typerequiredintegerType ID of document in sign request
descriptionrequiredstringDescription of the document
employeeNumberstringEmployee ID of registered DigiSign user. Used only if the sign request must be associated with specific user (and to be visible in their respective "My Documents" view)
documentsrequiredDocumentData[]
participantsSigningParticipantData[]List of participants in the signing process. The order of the elements of the list is strictly observed in the signing process.
expirystringDeadline to sign document(s). Format yyyy-MM-dd HH:mm:ss
expirationNotificationintegerNumber of hours before expiry to send reminder. Reminders templates are configured in the Settings of the DigiSign Document Portal.
autoprocessbooleanTrue if the signing process must be initiated automatically by the timer (within 5 min). False if the process will be started manually from the DigiSign Document Portal UI.
processNowbooleanTrue if the signing process must be initiated immediately.
sendSignedFileTostringE-mail address where to send the document after the process is completed and all participant have applied their respective digital signatures. Comma separated list of e-mail addresses. Supported delimiters ',' and ';'
passwordForSendSignedFileTostringPassword to protect the ZIP archive with documents sent to the [sendSignedFileTo]. If value is null or empty documents will be sent without protection.
folderNamestringFull name of the folder to upload the document into or path to the folder. The path to the folder starts from '/' (main folder) and is separated by '/'. If the value is not specified or its '/' or folder is not found the document will be uploaded into the main folder. If only a single name is passed, the first found folder with this name will be used.
tags[]Array of tags to be added to the document (for search)
callbackUrlstringCallback URL that will be called by the DigiSign portal when the status of the signing request changes. (Http method: GET)
request.json
{
  "type": 0,
  "description": "string",
  "employeeNumber": "string",
  "documents": [
    {
      "fileName": "string",
      "content": "string",
      "sha256sum": "string"
    }
  ],
  "participants": [
    {
      "names": "string",
      "email": "string",
      "phone": "string",
      "ipAddress": "string",
      "typeOfIdentifier": "EGN",
      "identifier": "string",
      "channel": "BTRUST",
      "signatureVendorAlias": "string",
      "billingMode": "RELYING_PARTY",
      "oneTimeSigning": true,
      "oneTimeRecipient": {
        "country": "string",
        "identificationNumber": "string",
        "documentNumber": "string",
        "firstName": "string",
        "middleName": "string",
        "lastName": "string",
        "phone": "string",
        "email": "string",
        "language": "bg",
        "codeConfirmation": "VENDOR",
        "personIdentifierType": "EGN",
        "personDocumentType": "ID_CARD",
        "firstNameCyrillic": "string",
        "middleNameCyrillic": "string",
        "lastNameCyrillic": "string",
        "birthCountryCode": "string",
        "birthDate": "string",
        "documentIssueDate": "string",
        "documentValidityDate": "string",
        "personAddress": {
          "address": "string",
          "city": "string",
          "countryCode": "string"
        },
        "oneTimeOTPLINK": "OTP"
      },
      "oneTimeAgent": {
        "country": "string",
        "identificationNumber": "string",
        "phone": "string"
      },
      "signAllDocumentsAtOnce": true,
      "signaturePositions": [
        {
          "fileName": "string",
          "pageNum": 0,
          "xAxis": 0,
          "yAxis": 0
        }
      ],
      "signingProperties": [
        {
          "fileName": "string",
          "optional": true,
          "preview": true,
          "visibleSignature": true
        }
      ],
      "deviceId": "string",
      "protectionMode": "none",
      "linkPassword": "string",
      "autoSignerId": "string",
      "coverage": 0,
      "annotations": [
        {
          "fileName": "string",
          "annotationText": "string",
          "pageNum": 0,
          "xAxis": 0,
          "yAxis": 0,
          "fontName": "string",
          "fontSize": 0,
          "fontColor": "string"
        }
      ],
      "visualSignVariant": "DIGISIGN",
      "autoprocess": true,
      "signedDeclaration": "string",
      "employee": {
        "email": "string",
        "employeeId": "string",
        "fullNameCyrillic": "string",
        "fullNameLatin": "string",
        "phone": "string",
        "position": "string"
      },
      "sendSignedFile": true,
      "passwordSendSignedFile": "string"
    }
  ],
  "expiry": "string",
  "expirationNotification": 0,
  "autoprocess": true,
  "processNow": true,
  "sendSignedFileTo": "string",
  "passwordForSendSignedFileTo": "string",
  "folderName": "string",
  "tags": [
    null
  ],
  "callbackUrl": "string"
}
bash
curl -X POST "https://{instance}.digisign.space/api/external/v1/signRequests/create" \
  -H "apiKey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d @request.json
Response 200
{
  "unid": "string",
  "status": "Waiting",
  "totalParticipants": 0,
  "signedParticipants": 0,
  "errorMessage": "string",
  "success": true
}

200401404

Update a request

PUT/signRequests/update

Updates a request and starts the signing process.

Request body

FieldTypeDescription
unidrequiredstringUNID of sign request
participantsSigningParticipantUpdateData[]Signing participants with new signature positions
expirystringDeadline to sign document(s). Format yyyy-MM-dd HH:mm:ss
processNowbooleanTrue if the signing process must be initiated immediately.
request.json
{
  "unid": "string",
  "participants": [
    {
      "identifier": "string",
      "signaturePositions": [
        {
          "fileName": "string",
          "pageNum": 0,
          "xAxis": 0,
          "yAxis": 0
        }
      ],
      "visualSignVariant": "DIGISIGN"
    }
  ],
  "expiry": "string",
  "processNow": true
}
bash
curl -X PUT "https://{instance}.digisign.space/api/external/v1/signRequests/update" \
  -H "apiKey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d @request.json
Response 200
{
  "unid": "string",
  "status": "Waiting",
  "totalParticipants": 0,
  "signedParticipants": 0,
  "errorMessage": "string",
  "success": true
}

200401404

Request status

GET/signRequests/status

Returns the status of the request and how many participants have signed. Optionally checks the status with the provider first.

Parameters

FieldTypeDescription
unidrequiredstringUNID of sign request
forceCheckbooleanForce check the request status in DigiSign Gateway and update in portal (if needed) before returning the result. Force check will be executed only when 'forceCheck' is 'true' and status in portal is 'Processing'
bash
curl "https://{instance}.digisign.space/api/external/v1/signRequests/status?unid=REQUEST_UNID" \
  -H "apiKey: YOUR_API_KEY"
Response 200
{
  "unid": "string",
  "status": "Waiting",
  "totalParticipants": 0,
  "signedParticipants": 0,
  "errorMessage": "string",
  "success": true
}

200401404

Download the signed document

GET/signRequests/downloadSigned

Returns the signed files. Optionally deletes them from DigiSign after a successful download.

Parameters

FieldTypeDescription
unidrequiredstringUNID of sign request
deleteDocumentbooleanDelete document from DigiSign after successful download.
bash
curl "https://{instance}.digisign.space/api/external/v1/signRequests/downloadSigned?unid=REQUEST_UNID" \
  -H "apiKey: YOUR_API_KEY"
Response 200
{
  "unid": "string",
  "status": "Waiting",
  "errorMessage": "string",
  "success": true,
  "documents": [
    {
      "fileName": "string",
      "content": "string",
      "sha256sum": "string"
    }
  ]
}

200401404

Cancel a request

POST/signRequests/cancel

Withdraws a signature request.

Request body

FieldTypeDescription
unidrequiredstringUNID of the sign request
reasonstringReason for the cancellation. Will be set in processing signing participant
request.json
{
  "unid": "string",
  "reason": "string"
}
bash
curl -X POST "https://{instance}.digisign.space/api/external/v1/signRequests/cancel" \
  -H "apiKey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d @request.json
Response 200
{
  "unid": "string",
  "status": "Waiting",
  "errorMessage": "string",
  "success": true
}

200400401404

Check a code (1-Click-Sign)

POST/signRequests/validateOtp

Checks the code the current signer has received.

Request body

FieldTypeDescription
unidrequiredstringUNID of the sign request
otpCoderequiredstringOTP code received from vendor
phonestringOptional parameter. Phone number of the current signing party. If specified will be checked against current signing party phone number. Format "+[0-9]".
request.json
{
  "unid": "string",
  "otpCode": "string",
  "phone": "string"
}
bash
curl -X POST "https://{instance}.digisign.space/api/external/v1/signRequests/validateOtp" \
  -H "apiKey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d @request.json
Response 200
{
  "success": true,
  "remainingAttempts": 0,
  "details": "string"
}

200400401404

New code (1-Click-Sign)

POST/signRequests/resendOtp

Sends the code to the current signer again.

Request body

FieldTypeDescription
unidrequiredstringUNID of the sign request
phonestringOptional parameter. Phone number of the current signing party. If specified will be checked against current signing party phone number. Format "+[0-9]".
request.json
{
  "unid": "string",
  "phone": "string"
}
bash
curl -X POST "https://{instance}.digisign.space/api/external/v1/signRequests/resendOtp" \
  -H "apiKey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d @request.json
Response 200
{
  "success": true,
  "details": "string"
}

200400401404

Response codes

200
Success
400
Invalid request
401
Missing or invalid key
403
Not allowed
404
Not found

Field descriptions are in English, as in the technical specification.

Questions about the integration: write to support@digisign.space.