DIGIDocs v2 APIs

DIGIDocs v2 APIs




Step-1: Create Signature Request

Option-1: Multipart type request


POST

{BASE_URL}/v2/client/document/upload


Headers:

authorization:  “Basic  Base64encodedValueOf(client_id:client_secret)” 

content-type : “multipart/form-data”



TIP: Construct multipart data as standard processes in the language of your choice to make the post call. In some languages like Java “boundary” parameter has to be calculated explicitly for multipart type of calls. 

Option 1 is Multipart and takes pdf & images in input. Option 2 given below is completely json based and takes only Base64 pdf as input. 


Body: 

Param 1:  file, type - file (Pass right content-type eg. application/pdf)  

Param 2 : request, type - text (content-type text/plain). Request parameter should be in below format


Request

{

    "signers": [{

        "identifier": "signer email/mobile",

        "name": "signer name",

           "sign_type": "sign_type",

           "reason": "Reason for signing"

      }],

    "expire_in_days": 10,

     "generate_access_token": true,

    "display_on_page": "all"

}



Option-2:  (Use this if you do not want to use Multipart type of request required with option 1) 


POST

{BASE_URL}/v2/client/document/uploadpdf


Headers:

authorization:  “Basic  Base64encodedValueOf(client_id:client_secret)” 

content-type : “application/json”



Sample Request Body:

{

   "signers": [

       {

           "identifier": "signer1 email/mobile",

           "name": "Signer Name",

           "sign_type": "aadhaar",

           "reason": "Reason for signing"

       }

   ],

   "expire_in_days": 10,

   "display_on_page": "custom",

   "notify_signers": true,

   "send_sign_link": true,
   "generate_access_token": true,

   "file_name": "Test.pdf",

   "file_data": "base64 of pdf document",

   "sign_coordinates": {

       "signer1 email/mobile": {

           "1": [

               {

                   "llx": 376.55510204081634,

                   "lly": 67.89677419354838,

                   "urx": 535.8943577430973,

                   "ury": 129.36122241086588

               }

           ]

       }

   },

   "estamp_request": {

       "tags": {

           "estamp_tag": quantity

       },

       "sign_on_page": "ALL",

       "note_content": "This is dummy content",

       "note_on_page": "ALL"

   }

}




Request Attributes : 


Attributes common for Option 1 & Option 2 mentioned above : 


Attribute

Type

Validations

Description

          signers

Object Array


Array of signer objects 

          identifier

String

Valid email id or 10 digit mobile

Mandatory. Email address or mobile of user from whom signature is requested

           reason

String 

Max length: 100 chars

Optional. Signing reason for user from whom signature is requested

            name

String

Max length: 100 chars

Optional. Name of signer. Refer here for more details

           sign_type

String

Valid enum value 

Optional. 
“aadhaar” : sign using aadhaar. [ default ]
“dsc” : sign using DSC

“electronic” : Screen pad based signature (slate signature) 

will_self_sign

boolean


Optional. true/false

signatory

string

Valid email id

Optional. Email address of authorized signatory of business

callback

string

Max length: 100 chars

Optional. Unique ID to be passed by you for the document (for idempotency). 


Note: Please use this with Unique Callback Id per document. If same callback Id is passed in the request, it’ll be considered duplicate request and information about previous document will be returned.

comment

string

Max length: 100 chars

Optional. Message/Notes to be sent to the signing parties

expire_in_days

integer

Valid positive integer

Optional. Set validity for expiry. Eg: Sign before X days, default 10 and max 90

sequential

boolean


Optional. In case of multiparty signing follow the sequence. 

generate access token

boolean


Default false, if you need an access token then pass this. If allowed for other input details, will receive an access_token object in response.

post_signing_receivers

string


Max limit 5.

send_sign_link

boolean


Optional. Send direct signing link over email or sms. Default False.

display_on_page

string

Valid enum value

Optional. Signature display on page - first/last/all/custom     (default is first). Pass “custom” if you are using sign_coordinates.


TIP: Refer sample request(s) below for example

sign_coordinates

object

 

Optional. Customized placing of signature.

Sample input : 

"sign_coordinates":{ "xyz@abc.com":{ "1":[{ "llx":315,"lly":20, "urx":455,"ury":60}]}}


TIP:  Please refer to “How to find coordinates on a document section” 


Map of signer identifiers. Each identifier points to a map of page no. Each page no. points to array of signature coordinates


TIP: Refer sample request(s) above for example

notify_signers

Boolean


Optional. Sends an email to signers once document uploaded & signature request is created for signers

        estamp_request

Object Array


Optional. Details of Estamps, Quantities to be consumed and other merge details like 

    tags

Map<String,Int>


Map of tag names and quantities to be attached. Tag names should be without spaces

Note : Do not pass any special character or space in E-stamp tag name.

    sign_on_page

FIRST/LAST/ALL


Default LAST

    note_content

String



    note_on_page

FIRST/LAST/ALL


Default LAST


Attributes only applicable on Option 2 : 


Attribute

Type

Validations

Description

file_data

String

Valid base64 string

Mandatory. Base64 encoded pdf file content

file_name

String

Max length: 100 chars

Optional. File Name for response. 


Note : Do not pass any Special character except underscore (_) in filename.








HTTP Status Codes

200 OK

Success

400 Bad Request

Invalid request. Some field missing/invalid

401 Not Authorized

Authentication Error. Check client_id and/or client_secret

403 Forbidden

Authorization Error. Operation/Action is not allowed

404 Not Found

Entity/Resource not found or does not exist

409 Conflict

Conflicting/Duplicate action

429 Too many requests

Request rejected by rate limiter on too many frequent requests

500, 502

Gateway error. Internal error of Digio

503 

Service unavailable

504

Time out






Response

{

   "id": "DID**********",

   "is_agreement": true,

   "agreement_type": "outbound",

   "agreement_status": "requested",

   "file_name": "Test.pdf",

   "created_at": "2023-03-14 18:05:12",

   "self_signed": false,

   "self_sign_type": "aadhaar",

   "no_of_pages": 2,

   "signing_parties": [

       {

           "name": "Signer Name",

           "status": "requested",

           "type": "self",

           "signature_type": "aadhaar",

           "identifier": "signer1 email/mobile",

           "reason": "Reason for signing",

           "expire_on": "2023-03-24 23:59:59"

       }

   ],

   "sign_request_details": {

       "name": "Digio",

       "requested_on": "2023-03-14 18:05:12",

       "expire_on": "2023-03-24 23:59:59",

       "identifier": "org account email_id",

       "requester_type": "org"

   },

   "channel": "api",

   "other_doc_details": {},

   "access_token": {

       "created_at": "2023-03-14 18:05:12",

       "id": "GWT*******",

       "entity_id": "DID**********",

       "valid_till": "2023-03-14 19:05:12"

   },

   "attached_estamp_details": {

       "estamp_tag": [

           "certificate_id"

       ]

   }

}







Response Attributes


Attribute

Type

Description

"id"

string

Unique ID to identify documents provided by Digio. 

This has to be passed for directly landing on this document within the website

“is_agreement”

boolean

true/false

"agreement_type"

string

“outbound”: Sent request to sign

“inbound”: Received request to sign

"agreement_status"

string

“requested”: pending signature from at least one signing party

“completed”: all signing parties have signed

“expired”: at least one signing party didn’t sign prior to request expiry 

(Note: Documents that “expired” without any signature, and hasn’t been accessed in a month will be archived.

Documents successfully signed archived after an year audit trail is available for downloading)

"file_name"

string

Name of the file as provided by you

"created_at"

timestamp

"yyyy-mm-dd hh:mm:ss": Timestamp of Document upload in IST

"self_signed"

boolean

true/false. 

“self_sign_type”

string

“Aadhaar”

“Electronic”

“DSC”

"no_of_pages"

integer

Number of pages in document

“signing_parties”


Array of signing parties

"name"

string

Name of the signing party

"status"

string

"requested": pending signature from user

"signed": signed by user

"expired": user didn’t sign prior to request expiry

"type"

string

"self": Requested from self

"org": Requested from an Organization and signatory not assigned

"signatory": Requested from an Organization and signatory has been assigned

"signature_type"

string

"aadhaar": signed/ to be signed using aadhaar

"dsc": signed/ to be signed  using dsc
“Electronic” : signed using slate

"identifier"

string

Email or mobile of the signing party

"reason"

string

Reason to sign the document

“signature_mode”

string

“Slate” 

“OTP” (can be viewed for electronic signature only)

“signing_request_details”



"name"

string

Organization name registered with Digio account

"requested_on"

timestamp

"yyyy-mm-dd hh:mm:ss": Timestamp of Sign Request origination in IST

"expire_on"

timestamp

"yyyy-mm-dd hh:mm:ss": Timestamp of Sign Request expiry in IST, if set. Default: 10 days from requested_on

"identifier"

string

Organization email  address registered with Digio account

“requester_type”

string

“org”

“channel”

string

“api”

“other_doc_details”



"web_hook_available"

boolean

true/false. 

“access_token”



“created_at”

timestamp

"yyyy-mm-dd hh:mm:ss": Timestamp of generation of access token.

“id”


Unique identifier referencing an access token.

“entity_id”


Unique identifier of the parent entity the access token belongs to.

“valid_till”


DateTime at which the access token expires. New token can be generated when expired with the access token generation API mentioned in the document. 

“attached_estamp_details”

string

E Stamp Certificate ID consumed during document creation



Note: Documents that “expired” without any signature, and hasn’t been accessed in a month will be archived.









Templates

Templates allow you to save and reuse a standard document that only needs certain information customized to the recipients by simply putting relevant placeholder variables. This way, all you have to do to share a document is to pass the values for the placeholder variables and just send it.

Templates on dashboard user guide

A user guide on how to create and use templates through Digio dashboard is available here- https://ivy-cirrus-4aa.notion.site/Templates-User-guide-d9c1d88e09bd4656aa67c0486a1f4447 



API to generate (merge) documents from multiple templates


POST

{BASE_URL}/v2/client/template/multi_templates/generate_doc_and_merge


Please note: template_key is the Template ID (Refer to User Manual)

Sample URL from dashboard - https://ext-enterprise.digio.in/#/templates/custom/preview/TMP210528120531193ONE19SNWFEMO3L


Headers:

authorization:  “Basic  Base64encodedValueOf(client_id:client_secret)” 

content-type : “application/json”


Sample Request

 [

 {

   "template_key": "Template ID value from digio dashboard ",

   "template_values": {

     "sub_end_dt": "31/12/1899",

     "sys_year": "2018",

     "sys_month": "9",

     "sys_date": "20/9/2018",

     "sc_ltla": "NA",

     "subv_flag": "N"

   },

   "images": {

     "customer_photo": {

       "content": "BASE64 of input image",

       "length": 100000,

       "width": 100000,

       "type": "JPEG/PNG"                              //mention one

     }

   }

 },

 {

   "template_key": "Template ID value from digio dashboard",

   "template_values": {

     "user_name": "test 2",

     "user_add": "2 M.G. Road, Bangalore 560001"

   }

 },

 {

   "template_key": "Template ID value from digio dashboard",

   "template_values": {

     "duration": "2 years",

     "interest": "10%"

   }

 }

]

Denotes Variable set on your document template


Output is a merged PDF file


API to create sign request from templates


POST

{BASE_URL}/v2/client/template/multi_templates/create_sign_request


Please note: template_key is the Template ID (Refer to User Manual)

Sample URL from dashboard - https://ext-enterprise.digio.in/#/templates/custom/preview/TMP210528120531193ONE19SNWFEMO3L




Headers:

authorization:  “Basic  Base64encodedValueOf(client_id:client_secret)” 

content-type : “application/json”


Sample Request

{

   "signers": [

       {

           "identifier": "signer1_identifier",

           "name": "signer1_name",

           "sign_type": "electronic",

           "signer_tag": "Generic name of signer1"

       },

       {

           "identifier": "signer2_identifier",

           "name": "signer2_name",

           "sign_type": "electronic",

           "signer_tag": "Generic name of signer2"

       },

       {

           "identifier": "signer3_identifier",

           "name": "signer3_name",

           "sign_type": "aadhaar",

           "signer_tag": "Generic name of signer3"

       }

   ],

   "expire_in_days": 10,

   "generate_access_token": True,   

   "send_sign_link": true,

   "notify_signers": true,

   "display_on_page": "custom",

   "file_name": "test.pdf",

   "estamp_request": {

       "tags": {

           "estamp_tag": quantity

       },

       "sign_on_page": "LAST",

       "note_content": "This is dummy content",

       "note_on_page": "ALL"

   },

   "templates": [

       {

           "template_key": "TMP************",

           "template_values": {

               "variable_name": "variable value"

           },

           "images": {

               "image_variable_name": {

                   "content": "base64 of image"

                   "type": "JPEG"

               }

           }

       },

       {

           "template_key": "TMP*****",

           "template_values": {}

       }

   ]

}

Denotes Variable set on your document template



Request Attributes : 


Attributes common for Option 1 mentioned above : 


Attribute

Type

Validations

Description

signers

Object Array


Array of signer objects 

          identifier

String

Valid email id or 10 digit mobile

Mandatory. Email address or mobile of user from whom signature is requested





           reason

String 

Max length: 100 chars

Optional. Signing reason for user from whom signature is requested

            name

String

Max length: 100 chars

Optional. Name of signer. Refer here for more details

           sign_type

String

Valid enum value 

Optional. 
“aadhaar” : sign using aadhaar. [ default ]
“dsc” : sign using dsc

“electronic” : Screen pad based signature (slate signature) 

signer_tag

String

Generic name for signers

Pass signer tag defined in template in dashboard

will_self_sign

boolean


Optional. true/false

signatory

string

Valid email id

Optional. Email address of authorized signatory of business

callback

string

Max length: 100 chars

Optional. Unique ID to be passed by you for the document (for idempotency).

Note: Please use this with Unique Callback Id per document. If the same callback Id is passed in the request, it’ll be considered a duplicate request and information about the previous document will be returned.

comment

string

Max length: 100 chars

Optional. Message/Notes to be sent to the signing parties

expire_in_days

integer

Valid positive integer

Optional. Set validity for expiry. Eg: Sign before X days 

Default: 10 days

Minimum: 1 day

Maximum value: 90 days


sequential

boolean


Optional. In case of multiparty signing follow the sequence. 

send_sign_link

boolean


Optional. Send a direct signing link over email or sms. Default False.

display_on_page

string

Valid enum value

Optional. Signature display on page - first/last/all/custom     (default is first). Pass “custom” if you are using sign_coordinates.


TIP: Refer sample request(s) below for example

sign_coordinates

object

 

Optional. Customized placing of signature.

Sample input : 

"sign_coordinates":{ "xyz@abc.com":{ "1":[{ "llx":315,"lly":20, "urx":455,"ury":60}]}}


TIP:  Please refer to “How to determine coordinates on a document section” 


Map of signer identifiers. Each identifier points to a map of page no.Each page no. points to array of signature coordinates


TIP: Refer sample request(s) below for example

notify_signers

Boolean

 

Optional. Sends an email to signers once document uploaded & signature request is created for signers

        estamp_request

Object Array


Optional. Details of Estamps, Quantities to be consumed and other merge details like 

    tags

Map<String,Int>


Map of tag names and quantities to be attached. Tag names should be without spaces

    sign_on_page

FIRST/LAST/ALL


Default LAST

    sign_coordinates



Same as above sign_coordinates for normal documents

    note_content

String



    note_on_page

FIRST/LAST/ALL


Default LAST







Sample Response

{

   "id": "DID****",

   "is_agreement": true,

   "agreement_type": "outbound",

   "agreement_status": "requested",

   "file_name": "test.pdf",

   "created_at": "2023-01-06 15:24:14",

   "self_signed": false,

   "self_sign_type": "aadhaar",

   "no_of_pages": 4,

   "signing_parties": [

       {

           "name": "Signer1_name",

           "status": "requested",

           "type": "self",

           "signature_type": "electronic",

           "signature_mode": "slate",

           "identifier": "signer1_identifier",

           "expire_on": "2023-01-16 23:59:59"

       },

       {

           "name": "Signer2_name",

           "status": "requested",

           "type": "self",

           "signature_type": "electronic",

           "signature_mode": "slate",

           "identifier": "signer_2_identifier",

           "expire_on": "2023-01-16 23:59:59"

       },

       {

           "name": "Signer3_name",

           "status": "requested",

           "type": "self",

           "signature_type": "aadhaar",

           "identifier": "Signer_3_identifier",

           "expire_on": "2023-01-16 23:59:59"

       }

   ],

   "sign_request_details": {

       "name": "Digio",

       "requested_on": "2023-01-06 15:24:15",

       "expire_on": "2023-01-16 23:59:59",

       "identifier": "org_identifier",

       "requester_type": "org"

   },

   "channel": "api",

   "other_doc_details": {

       "web_hook_available": true

   },

   "access_token": {

       "created_at": "2023-01-06 15:24:15",

       "id": "GWT********",

       "entity_id": "DID*********",

       "valid_till": "2023-01-06 16:24:15"

   },

   "template_meta_data_details": [

       {

           "signer_details": {

               "0": {

                   "sign_type": "aadhaar",

                   "optional": false,

                   "sign_tag": "Generic name of signer1"

               },

               "1": {

                   "sign_type": "electronic",

                   "optional": true,

                   "sign_tag": "Generic name of signer2"

               },

               "2": {

                   "optional": false,

                   "sign_tag": "Generic name of signer3"

               }

           }

       },

       {

           "signer_details": {

               "0": {

                   "optional": false,

                   "sign_tag": "Generic name of signer1"

               },

               "1": {

                   "optional": false,

                   "sign_tag": "Generic name of signer3"

               },

               "2": {

                   "optional": false,

                   "sign_tag": "Generic name of signer3"

               }

           }

       }

   ],

   "attached_estamp_details": {

       "estamp_tag": [

           "certificate_id"

       ]

   }

}








Response Attributes


Attribute

Type

Description

"id"

string

Unique ID to identify documents provided by Digio. 

This has to be passed for directly landing on this document within the website

“is_agreement”

boolean

true/false

"agreement_type"

string

“outbound”: Sent request to sign

“inbound”: Received request to sign

"agreement_status"

string

“requested”: pending signature from at least one signing party

“completed”: all signing parties have signed

“expired”: at least one signing party didn’t sign prior to request expiry

"status"

string

"requested": pending signature from requestor

"signed": signed by requestor

"expired": requestor didn’t sign prior to request expiry

"file_name"

string

Name of the file as provided by you

"created_at"

timestamp

"yyyy-mm-dd hh:mm:ss": Timestamp of Document upload in IST

"self_signed"

boolean

true/false. 

“self_sign_type”

string

“Aadhaar”

“Electronic”

“DSC”

"no_of_pages"

integer

Number of pages in document

"updated_at"

timestamp

"yyyy-mm-dd hh:mm:ss": Timestamp of last action (signature) on Document in IST

“signing_parties”


Array of signing parties

"name"

string

Name of the signing party

"status"

string

"requested": pending signature from user

"signed": signed by user

"expired": user didn’t sign prior to request expiry

"type"

string

"self": Requested from self

"org": Requested from an Organization and signatory not assigned

"signatory": Requested from an Organization and signatory has been assigned

"signature_type"

string

"aadhaar": signed/ to be signed using aadhaar

"dsc": signed/ to be signed  using dsc

“signature_mode”

string

“Slate” 

“OTP” (can be viewed for electronic signature only)

"identifier"

string

Email or mobile of the signing party

"reason"

string

Reason to sign the document

“signing_request_details”



"name"

string

Organization name registered with Digio account

"identifier"

string

Organization email  address registered with Digio account

"requested_on"

timestamp

"yyyy-mm-dd hh:mm:ss": Timestamp of Sign Request origination in IST

"expire_on"

timestamp

"yyyy-mm-dd hh:mm:ss": Timestamp of Sign Request expiry in IST, if set. Default: 10 days from requested_on

"requester_type"

string

“org”

“channel”

string

“api”

“other_doc_details”



"web_hook_available"

boolean

true/false. 

“access_token”



“created_at”

timestamp

"yyyy-mm-dd hh:mm:ss": Timestamp of generation of access token.

“id”


Unique identifier referencing an access token.

“entity_id”


Unique identifier of the parent entity the access token belongs to.

“valid_till”


DateTime at which the access token expires. New token can be generated when expired with the access token generation API mentioned in the document. 

"template_meta_data_details"



"signer_details"



"sign_type"

string

Optional. 

“aadhaar” : sign using aadhaar. [ default ]

“dsc” : sign using DSC

“electronic” : Screen pad based signature (slate signature) 


"optional"

boolean

true/false

"sign_tag"

string

Generic name of signer

“attached_estamp_details”

string


"estamp_tag"


E Stamp Certificate ID consumed during document creation



Step-2: Integrate with Digio SDK (Front end user journey)

For Web applications

For Android Application (Native) 

For Iphone Application (Native)





States, Error Codes & Error Messages

Please refer Digio Gateway State document for various States, Error Codes and Error Messages

CA-ESP apk file for Mobile app based eSign in FP mode

  1. Click to download NSDL apk
  2. CDAC is yet to release its apk for Biometric authentication
  3. (n)Code is yet to share its apk for Biometric authentication



Additional APIs

Call Download Document API


GET

{BASE_URL}/v2/client/document/download?document_id={documentId}


Response : is a pdf file which the corporate can fetch and store locally

NOTE - Use this API only for successfully signed documents 


Get Document Details API

GET

{{BASE_URL}}/v2/client/document/{documentId}?name_validation=true

Sample response:

Possible statuses - completed, requested, expired

{

   "id": "DID******",

   "is_agreement": true,

   "agreement_type": "outbound",

   "agreement_status": "completed",

   "file_name": "Test.pdf",

   "updated_at": "2023-03-10 17:44:16",

   "created_at": "2023-03-10 17:44:16",

   "self_signed": false,

   "self_sign_type": "aadhaar",

   "no_of_pages": 4,

   "signing_parties": [

       {

           "name": "Signer Name",

           "status": "signed",

           "updated_at": "2022-12-20 15:59:10",

           "type": "self",

           "signature_type": "aadhaar",

           "identifier": "customer_identifier",

           "expire_on": "2023-03-20 17:44:16",

           "pki_signature_details": {

               "name": "Name as per aadhaar",

               "aadhaar_suffix": "last 4 digits of aadhaar",

               "hash_of_photograph": "hash of aadhaar card holder image",

               "gender": "gender as per aadhaar",

               "year_of_birth": "year of birth",

               "postal_code": "postal code as aadhaar",

               "display_name": "Name passed in API"

           }

       }

   ],

   "sign_request_details": {

       "name": "Digio",

       "requested_on": "2023-03-10 17:44:16",

       "expire_on": "2023-03-20 17:44:16",

       "identifier": "org admin account",

       "requester_type": "org"

   },

   "channel": "web",

   "other_doc_details": {

       "web_hook_available": true

   },

   "attached_estamp_details": {

       "Tag_name": [

           "certificate_id"

       ]

   }

}




Response Attributes


Attribute

Type

Description

"id"

string

Unique ID to identify documents provided by Digio. 

This has to be passed for directly landing on this document within the website

“is_agreement”

boolean

true/false

"agreement_type"

string

“outbound”: Sent request to sign

“inbound”: Received request to sign

"agreement_status"

string

“requested”: pending signature from at least one signing party

“completed”: all signing parties have signed

“expired”: at least one signing party didn’t sign prior to request expiry

"file_name"

string

Name of the file as provided by you

"updated_at"

timestamp

"yyyy-mm-dd hh:mm:ss": Timestamp of last action (signature) on Document in IST

"created_at"

timestamp

"yyyy-mm-dd hh:mm:ss": Timestamp of Document upload in IST

"self_signed"

boolean

true/false. 

“self_sign_type”

string

“Aadhaar”

“Electronic”

“DSC”

"no_of_pages"

integer

Number of pages in document

“signing_parties”


Array of signing parties

"name"

string

Name of the signing party

"status"

string

"requested": pending signature from user

"signed": signed by user

"expired": user didn’t sign prior to request expiry

"type"

string

"self": Requested from self

"org": Requested from an Organization and signatory not assigned

"signatory": Requested from an Organization and signatory has been assigned

"signature_type"

string

"aadhaar": signed/ to be signed using aadhaar

"dsc": signed/ to be signed  using dsc

"identifier"

string

Email or mobile of the signing party

"reason"

string

Reason to sign the document

"status"

string

"requested": pending signature from requestor

"signed": signed by requestor

"expired": requestor didn’t sign prior to request expiry

"pki_signature_details”

Json Map


  1. name

String

Name of signer

  1. aadhaar_suffix

String

Last four digits of signer’s aadhaar

  1. hash_of_photograph

String

Hash of signer’s photo associated with aadhaar 

  1. gender

Enum String

Gender of signer. Possible values are - 

M

F

T

  1. year_of_birth

String

Year of signer’s birth in format:  YYYY

  1. postal_code

String

Postal code of signer

  1. display name

string

Name passed on the API call

“signing_request_details”



"name"

string

Organization name registered with Digio account

"requested_on"

timestamp

"yyyy-mm-dd hh:mm:ss": Timestamp of Sign Request origination in IST

"expire_on"

timestamp

"yyyy-mm-dd hh:mm:ss": Timestamp of Sign Request expiry in IST, if set. Default: 10 days from requested_on

"identifier"

string

Organization email  address registered with Digio account

"requester_type"

string

"org"

“channel”

string

“api”

“other_doc_details”



"web_hook_available"

boolean

true/false. 

“attached_estamp_details”

string


"estamp_tag"


E Stamp Certificate ID consumed during document creation


Cancel Signature Request API

POST

{BASE_URL}/v2/client/document/{documentId}/cancel

Note: Document signing request can be canceled only if the status is “Requested”.



Response

{

   "id": "DID*******",

   "is_agreement": true,

   "agreement_type": "outbound",

   "agreement_status": "expired",

   "file_name": "Test.pdf",

   "updated_at": "2023-03-10 17:44:16",

   "created_at": "2023-03-10 17:44:16",

   "self_signed": false,

   "self_sign_type": "aadhaar",

   "no_of_pages": number of pages in document,

   "signing_parties": [

       {

           "name": "Signer Name",

           "status": "expired",

           "updated_at": "2023-04-10 17:44:16",

           "type": "self",

           "signature_type": "signature_type",

           "identifier": "signer_identifier",

           "reason": "Reason for signing",

           "expire_on": "2023-03-21 00:00:00"

       }

   ],

   "sign_request_details": {

       "name": "Richa",

       "requested_on": "2023-03-10 17:44:16",

       "expire_on": "2023-03-21 00:00:00",

       "identifier": "org admin account",

       "requester_type": "org"

   },

   "channel": "api",

   "other_doc_details": {

       "web_hook_available": true

   },

   "attached_estamp_details": {}

}




Regenerate Access Token


Note: Use this if your access token has expired and you want to avoid first factor authentication through email/mobile otp  


POST

{BASE_URL}/user/auth/generate_token


Headers:

authorization:  “Basic  Base64encodedValueOf(client_id:client_secret)” 

content-type : “application/json”


Request

{

  "entity_id":"DID*********"

}


Body Parameters

Type

Description

entity_id

String

The unique identifier referencing a KYC request object.


Response

{

   "response": {

       "created_at": "2023-01-06 11:47:33",

       "updated_at": "2023-01-06 11:47:33",

       "id": "GWT********I",

       "entity_id": "DID***********",

       "valid_till": "2023-01-07 11:47:33"

   },

   "session": {

       "sid": "SID********",

       "is_logged_in": true

   }

}




Response Parameters

Type

Description

created_at

String

DateTime of request creation.

id

String

Unique identifier referencing an access token.

entity_id

String

Unique identifier of the parent entity the access token belongs to.

valid_till

String

DateTime at which the access token expires.


How to find coordinates on a document

  1. Login to https://ext-enterprise.digio.in (sandbox) or  https://enterprise.digio.in (production) (login credentials will be shared separately)
  2. Upload sample .pdf document on which coordinates need to be mapped out

  1. Select "View coordinates" from dropdown Options
  2. Add "Signature Box"

  1. Drag to reposition and Stretch to resize
  2. Add as many signatures per page as required
  3. Scroll down to the respective page where you want to add a signature box
  4. Click "View Coordinates"
  5. Copy the sample code along with coordinates
  6. Refer to the below example and edit accordingly.



{

   "0": {                              --> <replace it with signer 1 email/mobile>

       "1": [                          --> Position of sign on page 1 for signer 1

           {

               "llx": 90.12,

               "lly": 236,

               "urx": 259.71,

               "ury": 298

           }

       ],

       "2": [                          --> Position of sign on page 2 for signer 1

           {

               "llx": 40.59,

               "lly": 780.87,

               "urx": 200.9,

               "ury": 821.44

           }

       ]

   },

   "1": {                              --> <replace it with signer 2 email/mobile>

       "1": [                          --> Position of sign on page 1 for signer 2

           {

               "llx": 339.17,

               "lly": 238,

               "urx": 501,

               "ury": 301

           }

       ],

       "2": [                          --> Position of sign on page 2 for signer 2

           {

               "llx": 205.98,

               "lly": 735.24,

               "urx": 366.29,

               "ury": 775.8

           }

       ]

   }

}




Webhooks

Webhook event required for post signing notification is doc.signed. 

Refer to the sample payload for your reference.



Additional Links:

  1. SignServer - Documentation
  2. Webhook FAQ -   Document
  3. Webhook Sample Payload -  Document    
  4. Postman Collection- Link
  5. Blacklisted domains - https://docs.google.com/document/d/1CsLaijCIrjtiQVlfa27Hg-tXiMKQ7O9JTPQw_PpBpSw/edit



    • Related Articles

    • How to access digidocs?

      You can log into digidocs using the below links for Sandbox(testing) : https://ext-enterprise.digio.in Production(live) : https://enterprise.digio.in Your log in credentials would be shared to the registered email address. You may also have to ...
    • How can I import an existing template on digidocs?

      Importing your document template After login on Digio Platform, Templates-> Custom-> Import template Note: Templates downloaded in json format need to be uploaded here. Define signature positions on the template Click on add signers and then click to ...
    • How can I generate presentation requests using APIs?

      Your system can make an API call to Digio, for a onetime or recurring debit creation. Refer API doc here - on this link On each step of the debit lifecycle a webhook event is triggered. Refer detailed steps on this link