---
title: eStamping Standalone API
slug: contract360/estamping-standalone-api
docTags: 
createdAt: 2025-08-09T08:23:54.529Z
---

# Introduction

The All-in-One Document Authentication API is a comprehensive solution that seamlessly integrates multiple essential document processing functionalities into a single, robust API. This powerful tool is designed to enhance efficiency, ensure legal compliance, and simplify the management of electronic documents. Here’s a detailed description of the integrated functionalities:

**eStamping**
The eStamping feature simplifies the process of affixing stamp paper to documents, ensuring legal compliance with ease. Users can provide the required PDF and stamp paper details in the input, and the API efficiently generates an output PDF with the stamp paper accurately affixed and defaced for added security. The API also allows for the inclusion of unique headers in API calls, facilitating precise response tracking and improved integration into existing systems. This functionality ensures that document processing is seamless, efficient, and legally compliant.

# Authentication

API authentication is a crucial security process that ensures authorized access to an application programming interface (API). It involves validating the identity of users or systems seeking to interact with the API. Please use the `access token` shared with you by your assigned Signzy's CSM. Please set the value of the key `Authorization` in the headers to the `access token`, while making an API call. In this way, Signzy's system will be able to authenticate you and you will be able to make a successful API call.&#x20;

# API Details

## Sample cURL

:::CodeblockTabs
pre-production (estamp)

```json
curl --location 'https://api-preproduction.signzy.app/api/v3/contract/eStampingAndDocSigner' \
--header 'Authorization: XXXXXXXXXXXXXXXXXXXXXXXX' \
--header 'x-uniqueReferenceId: XXXXXXXXXX' \
--header 'Content-Type: application/json' \
--data '{
    "pdf": "",
    "endOfLife":19739,
    "estamp": {
        "type": "ESTAMP",
        "customDefacement": "Stamp duty of Rspaid via Stamp Paper Certificate No {{certificateNo}}",
        "location": "CUSTOMIZE",
        "xCoordinate": "10",
        "yCoordinate": "10",
        "secondPartyName": "B",
        "firstPartyName": "ABCLS",
        "stampDutyPaidBy": "B",
        "considerationPrice": "50",
        "stampDetails": [
            {
                "stateCode": "KA",
                "articleCode": "KA",
                "stampDutyValue": "10",
                "count": 1,
                "purposeOfStampDuty": "test"
            },
            {
                "stateCode": "MP",
                "articleCode": "KA",
                "stampDutyValue": "10",
                "dynamicStampConsumption": true,
                "purposeOfStampDuty": "test"
            },
             {
                "stateCode": "MP",
                "articleCode": "KA",
                "stampDutyValue": "10",
                "dynamicStampConsumption": true,
                "lossCap": 50,
                "mergeLimit": 2,
                "purposeOfStampDuty": "test"
            }
        ]
    }
}'
```

pre-production (eChallan)

```json
curl --location 'https://api-preproduction.signzy.app/api/v3/contract/eStampingAndDocSigner' \
--header 'Authorization: XXXXXXXXXXXXXXXXXXXXXXXX' \
--header 'x-uniqueReferenceId: XXXXXXXXXX' \
--header 'Content-Type: application/json' \
--data '{
    "pdf": "",
    "additionalFiles": ["",""],
    "estamp": {
        "type": "ECHALLAN",
        "secondPartyName": "C",
        "firstPartyName": "BHAGYESH",
        "stateCode": "KA",
        "articleCode": "KA",
        "stampDutyPaidBy": "C",
        "purposeOfStampDuty": "Nothing",
        "amount": 10,
        "pageNo": [
            2
        ],
        "location": "CUSTOMIZE",
        "xCoordinate": "10",
        "yCoordinate": "10",
        "stampDutyValue": "10",
        "customDefacement": ""

        }
}'
```

production(estamps)

```json
curl --location 'https://api.signzy.app/api/v3/contract/eStampingAndDocSigner' \
--header 'Authorization: XXXXXXXXXXXXXXXXXXXXXXXX' \
--header 'x-uniqueReferenceId: XXXXXXXXXX' \
--header 'Content-Type: application/json' \
--data '{
    "pdf": "",
    "endOfLife": 19739,
    "estamp": {
        "type": "ESTAMP",
        "customDefacement": "Stamp duty of Rspaid via Stamp Paper Certificate No {{certificateNo}}",
        "location": "CUSTOMIZE",
        "xCoordinate": "10",
        "yCoordinate": "10",
        "secondPartyName": "B",
        "firstPartyName": "ABCLS",
        "stampDutyPaidBy": "B",
        "considerationPrice": "50",
        "stampDetails": [
            {
                "stateCode": "KA",
                "articleCode": "KA",
                "stampDutyValue": "10",
                "count": 1,
                "purposeOfStampDuty": "test"
            },
           {
                "stateCode": "MP",
                "articleCode": "KA",
                "stampDutyValue": "10",
                "dynamicStampConsumption": true,
                "purposeOfStampDuty": "test"
            },
             {
                "stateCode": "MP",
                "articleCode": "KA",
                "stampDutyValue": "10",
                "dynamicStampConsumption": true,
                "lossCap": 50,
                "mergeLimit": 2,
                "purposeOfStampDuty": "test"
            }
        ]
    }
}'
```

production (eChallan)

```json
curl --location 'https://api.signzy.app/api/v3/contract/eStampingAndDocSigner' \
--header 'Authorization: XXXXXXXXXXXXXXXXXXXXXXXX' \
--header 'x-uniqueReferenceId: XXXXXXXXXX' \
--header 'Content-Type: application/json' \
--data '{
    "pdf": "",
    "endOfLife": 19739,
    "additionalFiles": ["",""],
    "estamp": {
        "type": "ECHALLAN",
        "secondPartyName": "C",
        "firstPartyName": "BHAGYESH",
        "stateCode": "KA",
        "articleCode": "KA",
        "stampDutyPaidBy": "C",
        "purposeOfStampDuty": "Nothing",
        "amount": 10,
        "pageNo": [
            2
        ],
        "location": "CUSTOMIZE",
        "xCoordinate": "10",
        "yCoordinate": "10",
        "stampDutyValue": "10",
        "customDefacement": ""

        }
}'
```
:::

## Header Parameters

| key                 | Type   | M/o      | Description                                                                                                                                                                                                 |
| ------------------- | ------ | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| x-uniqueReferenceId | String | Optional | Unique reference id for each API request. It needs to be generated at client's end and passed in API. It can further be used in eStamp & DocSigner query API to get the succesful reponses of the API call. |

## Input Parameters (estamp)

| Parameter Name          | Type             | Mandatory/Optional                          | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| ----------------------- | ---------------- | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| pdf                     | String           | Mandatory                                   | Mandatory<br />Pass the document to be signed in below formats - URL of the PDF file                                                                                                                                                                                                                                                                                                                                                                                                  |
| additionalFiles         | Array            | Optional                                    | This parameter accepts an array of strings, Pass the URLs or Base64 encoded string value of the PDF file you want to append with the main file.                                                                                                                                                                                                                                                                                                                                       |
| type                    | String           | Mandatory                                   | You want to use estamp or eChallan.<br />Please pass <font color="#3b9f0f">`"ESTAMP"`</font> if you want to use eStamp method                                                                                                                                                                                                                                                                                                                                                         |
| customDefacement        | String           | Optional                                    | If passed, custom defecement will be enabled. text for custom defacement can contain variables. The variable should be enclosed in \{\{}} and can be one from below: <br />Estamp:<br />*&#x7B;&#x7B;certificateNo}}&#x7B;&#x7B;certificateDate}} \{\{uniqueDocRef'}}*<br />*\{\{firstPartyName'}}*<br />*\{\{stateCode'}},\{\{articleCode'}}*<br />*&#x7B;&#x7B;denomination}} &#x7B;&#x7B;secondPartyName}}*<br />*&#x7B;&#x7B;stampDutyPaidBy}}*<br />*\{\{'purposeOfStampDuty'}}* |
| secondPartyName         | String           | Mandatory                                   | Name of second party involved in the transactiton                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| firstPartyName          | String           | Mandatory                                   | Name of first party involved in the transaction                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| stampDutyPaidBy         | String           | Mandatory                                   | Name of the party who paid the stamp duty(first party or second party)                                                                                                                                                                                                                                                                                                                                                                                                                |
| stampDetails            | Array Of Objects | Mandatory                                   | Details of the stamp papers which needs to be stamped on the document                                                                                                                                                                                                                                                                                                                                                                                                                 |
| stateCode               | String           | Mandatory                                   | State code of the states where estamps are valid. <br />Possible values : \["KA", "MH", "GJ", "AP", "AN", "AS", "BR", "CT", "CH", "DN", "DD", "DL", "HP", "JK", "JH", "LA", "OR", "PY", "RJ", "TN", "TR", "UP", "UT", "PB", "WB", "GA", "HR", "KL", "MN", "ML", "MZ", "NL", "LD", "SK", "AR", "TG", "MP"]                                                                                                                                                                             |
| articleCode             | String           | Mandatory                                   | Article Code for E-stamping                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| stampDutyValue          | String           | Mandatory                                   | Amount of the stamp duty                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| count                   | String           | Mandatory                                   | Count of the stamp papers that needs to be used                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| dynamicStampConsumption | Boolean          | Optional                                    | If true is passed, dynamic eStamping will be enabled for that particular stamp statecode, articlecode and stamp duty. Note: You can either pass <br />count<br /> OR <br />dynamicStampConsumption as True. If both are not passed, Then be default, count as one will be considered.                                                                                                                                                                                                 |
| lossCap                 | Number           | Optional (By default as 0)                  | In case of dnyamic stamping, losscap represents the maxium amount of loss, for example, if the amount passed in stamp is INR 1203 and loss cap is 97, so we can get a stamp paper with a maximum value of 1300 (1203+97)                                                                                                                                                                                                                                                              |
| mergeLimit              | Number           | Optional (By default - No limit)            | In case of dynamic stamping, mergeLimit reprsents the maximum number of stamp paper which should be clubbed to get to the amount of stamp value                                                                                                                                                                                                                                                                                                                                       |
| purposeOfStampDuty      | String           | Mandatory                                   | Purpose of stamp duty                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| considerationPrice      | String           | Mandatory                                   | Amount of fund involved in the transaction                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| location                | String           | Optional (By default `bottomLeft`)          | location of defacement. available option : `topLeft, topCenter, middleLeft, middleCenter, bottomLeft, bottomCenter, customize`                                                                                                                                                                                                                                                                                                                                                        |
| xCoordinate             | Number           | Mandatory if location passed as `customize` | x coordinate for defacement                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| yCoordinate             | Number           | Mandatory if location passed as `customize` | y coordinate for defacement                                                                                                                                                                                                                                                                                                                                                                                                                                                           |

## Input Parameters (echallan)

| Parameter Name                  | Type             | Mandatory/Optional                          | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| ------------------------------- | ---------------- | ------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| pdf                             | String           | Mandatory                                   | Mandatory<br />Pass the document to be signed in below formats - URL of the PDF file                                                                                                                                                                                                                                                                                                                                                                                  |
| additionalFiles                 | Array            | Optional                                    | This parameter accepts an array of strings, Pass the URLs or Base64 encoded string value of the PDF file you want to append with the main file.                                                                                                                                                                                                                                                                                                                       |
| type                            | String           | Mandatory                                   | You want to use estamp or eChallan.<br />Please pass <font color="#3b9f0f">`"ECHALLAN"`</font> if you want to use echallan method                                                                                                                                                                                                                                                                                                                                     |
| customDefacement                | String           | Optional                                    | If passed, custom defecement will be enabled. text for custom defacement can contain variables. The variable should be enclosed in \{\{}} and can be one from below: <br />Echallan:<br />&#xNAN;*&#x7B;&#x7B;challanNo}}*,*&#x7B;&#x7B;challanDate}}*,*&#x7B;&#x7B;stateCode}}*,*&#x7B;&#x7B;firstPartyName}}*,*&#x7B;&#x7B;articleCode}}*,*&#x7B;&#x7B;amount}}*,*&#x7B;&#x7B;secondPartyName}}*,*&#x7B;&#x7B;purposeOfStampDuty}}*,*&#x7B;&#x7B;stampDutyPaidBy}}* |
| secondPartyName                 | String           |                                             | Name of second party involved in the transactiton                                                                                                                                                                                                                                                                                                                                                                                                                     |
| firstPartyName                  | String           |                                             | Name of first party involved in the transaction                                                                                                                                                                                                                                                                                                                                                                                                                       |
| stampDutyPaidBy                 | String           |                                             | Name of the party who paid the stamp duty(first party or second party)                                                                                                                                                                                                                                                                                                                                                                                                |
| stampDetails                    | Array Of Objects | Mandatory                                   | Details of the stamp papers which needs to be stamped on the document                                                                                                                                                                                                                                                                                                                                                                                                 |
| stampDetails.stateCode          | String           | Mandatory                                   | State code of the states where estamps are valid. <br />Possible values : \["KA", "MH", "GJ", "AP", "AN", "AS", "BR", "CT", "CH", "DN", "DD", "DL", "HP", "JK", "JH", "LA", "OR", "PY", "RJ", "TN", "TR", "UP", "UT", "PB", "WB", "GA", "HR", "KL", "MN", "ML", "MZ", "NL", "LD", "SK", "AR", "TG", "MP"]                                                                                                                                                             |
| stampDetails.articleCode        | String           | Mandatory                                   | Article Code for E-stamping                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| stampDetails.stampDutyValue     | String           | Mandatory                                   | Amount of the stamp duty                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| stampDetails.count              | String           | Mandatory                                   | Count of the stamp papers that needs to be used                                                                                                                                                                                                                                                                                                                                                                                                                       |
| stampDetails.purposeOfStampDuty | String           | Mandatory                                   | Purpose of stamp duty                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| considerationPrice              | String           | Mandatory                                   | Amount of fund involved in the transaction                                                                                                                                                                                                                                                                                                                                                                                                                            |
| pageNo                          | Array            | Optional(By default first page)             | Page no on which defacement is needed.                                                                                                                                                                                                                                                                                                                                                                                                                                |
| location                        | String           | Optional (By default `bottomLeft`)          | location of defacement. available option : `topLeft, topCenter, middleLeft, middleCenter, bottomLeft, bottomCenter, customize`                                                                                                                                                                                                                                                                                                                                        |
| xCoordinate                     | Number           | Mandatory if location passed as `customize` | x coordinate for defacement                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| yCoordinate                     | Number           | Mandatory if location passed as `customize` | y coordinate for defacement                                                                                                                                                                                                                                                                                                                                                                                                                                           |

## Output Parameters

| Parameter Name | Type   | Description                                                   |
| -------------- | ------ | ------------------------------------------------------------- |
| pdf            | String | The input PDF document to be stamped                          |
| stampedPdf     | String | The signed PDF document after eStamping                       |
| refId          | String | Signzy generated unique transaction ID for the API response.  |

## Sample Errors

:::CodeblockTabs
400

```json
{
    "name": "error",
    "message": "Duplicate uniqueReferenceId. Cannot complete the process.",
    "reason": "ERROR",
    "type": "Bad Request",
    "statusCode": 400
}
```

400

```json
{
    "name": "error",
    "message": "You do not have stamps available for given denominations in your wallet. Please upload estamps.",
    "reason": "VALIDATION_ERROR",
    "type": "Bad Request",
    "statusCode": 400
}
```

400

```json
{
    "name": "error",
    "message": "Enter a valid location",
    "reason": "VALIDATION_ERROR",
    "type": "Bad Request",
    "statusCode": 400
}
```

401

```json
{
    "message": "Invalid authentication credentials"
}
```

400

```json
{
    "name": "error",
    "message": "docSignerClass3CertificateValues is not allowed",
    "reason": "VALIDATION_ERROR",
    "type": "Bad Request",
    "statusCode": 400
}
```

400

```json
{
   "name": "error",
   "message": "signatures is not allowed",
   "reason": "VALIDATION_ERROR",
   "type": "Bad Request",
   "statusCode": 400
}
```

400

```json
{
    "name": "error",
    "message": "signatures[0].signaturePosition[0] must be one of [TOPLEFT, TOPCENTER, TOPRIGHT, MIDDLELEFT, MIDDLECENTER, MIDDLERIGHT, BOTTOMLEFT, BOTTOMCENTER, BOTTOMRIGHT, CUSTOMIZE]",
    "reason": "VALIDATION_ERROR",
    "type": "Bad Request",
    "statusCode": 400
}
```

409

```json
{
    "name": "error",
    "message": "Error from upstream in signing of the document with the given inputs for Document Signer Certificate Class3 method",
    "reason": "VALIDATION_ERROR",
    "type": "Bad Request",
    "statusCode": 409
}
```
:::

## Error Codes

| **Error Code** | **Error Message**     | **Explanation**                                                    |
| -------------- | --------------------- | ------------------------------------------------------------------ |
| 400            | Bad Request           | Input parameter has a missing required parameter or invalid inputs |
| 401            | Authorization Failed  | Authorization token is invalid                                     |
| 409            | Upstream Error        | Error from the upstream while doing the signing                    |
| 500            | Internal Server Error | Internal error at Signzy, Please reach out to help\@signzy.com     |

