/

to search

Introducing Setu Changelog Check it out ↗

#Signing config creation

The signing config is a JSON that specifies on which pages and at what coordinates the specific user has to sign. The size of the signer's rectangle.

  • Signing config allows you to sign at multiple places on same page.
  • Sign at multiple places on different pages.
  • Sign at any coordinate on a page.

#Understanding the config schema

{
"signers": [
{
"optional": false,
"signRectangles": [
{
"coordinate": {
"lowerLeftX": 402,
"lowerLeftY": 53,
"upperRightX": 542,
"upperRightY": 93
},
"pages": [0,1]
},
{
"coordinate": {
"lowerLeftX": 358,
"lowerLeftY": 232,
"upperRightX": 498.53009106595096,
"upperRightY": 272.52901734104046
},
"pages": [2]
}
]
}
]
}
  • The signers array specifies the config for each signer. Each signer config has information about what pages and coordinates the specific signer has to sign.
  • The above example indicates there is one signer. Who should sign at (x1:402, y1:53, x2:542, y2:93) on pages 0 and 1. Assuming starting index as 0. On coordinate (x1:358, y1:232, x2:498.53, y2:272) on page 2.
  • The coordinates are the lower left and upper right of the diagonal of the sign rectangle.
  • The config can be used to get flexible configurations like one signer signs on multiple places on the same page with multiple signers in the overall configuration.
  • The optional field indicates whether the sign by that signer is required for completion of document.

#Examples

#Multiple signers, different pages and same coordinates

Signer 1 signs at (x1:402, y1:53, x2:542, y2:93) on pages 0 and 1.

Signers 2 signs at (x1:402, y1:53, x2:542, y2: 93) on pages 2 and 3.


{
"signers": [
{
"optional": false,
"signRectangles": [
{
"coordinate": {
"lowerLeftX": 402,
"lowerLeftY": 53,
"upperRightX": 542,
"upperRightY": 93
},
"pages": [0,1]
}
]
},
{
"optional": false,
"signRectangles": [
{
"coordinate": {
"lowerLeftX": 402,
"lowerLeftY": 53,
"upperRightX": 542,
"upperRightY": 93
},
"pages": [2,3]
}
]
}
]
}


#Multiple signers and one signer signs in multiple places on the same page

Signer 1 signs at (x1:402, y1:53, x2:542, y2:93) on pages 0 and 1.

Signer 1 signs at (x1:358, y1:232, x2:498, y2:272) on pages 0 and 1.

Signer 2 signs at (x1:402, y1: 53, x2: 542, y2:93) on pages 2 and 3.


{
"signers": [
{
"optional": false,
"signRectangles": [
{
"coordinate": {
"lowerLeftX": 402,
"lowerLeftY": 53,
"upperRightX": 542,
"upperRightY": 93
},
"pages": [0,1]
},
{
"coordinate": {
"lowerLeftX": 358,
"lowerLeftY": 232,
"upperRightX": 498,
"upperRightY": 272
},
"pages": [0,1]
}
]
},
{
"optional": false,
"signRectangles": [
{
"coordinate": {
"lowerLeftX": 402,
"lowerLeftY": 53,
"upperRightX": 542,
"upperRightY": 93
},
"pages": [2,3]
}
]
}
]
}

#Upload signing config

configId is an optional UUID parameter. If passed, the config will be created with the same ID. If not passed, a new configId will be generated automatically.


Setu has processed your request successfully.


Request
POST /api/signature/config
{
"configId": "825169c7-08a4-4739-94d5-0d8c4ef5e4f1", // Optional
"signers": [
{
"optional": false,
"signRectangles": [
{
"coordinate": {
"lowerLeftX": 402,
"lowerLeftY": 53,
"upperRightX": 542,
"upperRightY": 93
},
"pages": [0, 1]
},
{
"coordinate": {
"lowerLeftX": 358,
"lowerLeftY": 232,
"upperRightX": 498.53009106595096,
"upperRightY": 272.52901734104046
},
"pages": [2]
}
]
}
]
}

Response

You will get the following details—

  • Unique configId id which can be used to create signature request.
  • The same configId can be used across multiple signature request using doc of one type.
{
"configId": "825169c7-08a4-4739-94d5-0d8c4ef5e4f1",
"traceId": "5de9b52d-1252-409b-9bc5-063fa67f8191"
}

#Update signing config

The latest version of config will be used for signing the request, but you can view the previous versions of config using the configId.


Setu has processed your request successfully.


Request
PUT /api/signature/config
{
"configId": "df9962aa-153e-410a-b98c-9aa351936fb3",
"config": {
"signers": [
{
"optional": false,
"signRectangles": [
{
"coordinate": {
"lowerLeftX": 358,
"lowerLeftY": 232,
"upperRightX": 498.53009106595096,
"upperRightY": 272.52901734104046
},
"pages": [
2
]
}
]
}
]
}
}

Response
{
"configId": "df9962aa-153e-410a-b98c-9aa351936fb7",
"config": {
"signers": [
{
"optional": false,
"signRectangles": [
{
"coordinate": {
"lowerLeftX": 358.0,
"lowerLeftY": 232.0,
"upperRightX": 498.53009106595096,
"upperRightY": 272.52901734104046
},
"pages": [
2
]
}
]
}
]
},
"versionNo": 2,
"traceId": "1-671a2aad-7b1fd38704e5f1567083fcd3"
}

#Get signing config


Setu has processed your request successfully.


If the versionNo is not provided, the latest version of the config will be returned by default.

Request
GET /api/signature/config/:configId/:versionNo

Response
{
"configId": "df9962aa-153e-410a-b98c-9aa351936fb7",
"config": {
"signers": [
{
"optional": false,
"signRectangles": [
{
"coordinate": {
"lowerLeftX": 358.0,
"lowerLeftY": 232.0,
"upperRightX": 498.53009106595096,
"upperRightY": 272.52901734104046
},
"pages": [
2
]
}
]
}
]
},
"versionNo": 2,
"traceId": "1-671a2aad-7b1fd38704e5f1567083fcd3"
}

#Flow of API calls

Read more about the flow of API calls here


Was this page helpful?