Overview
The E-Stamp Integration API allows external clients to create and retrieve e-stamps through Legistify’s platform. This API integrates with SHCIL (Stock Holding Corporation of India Limited) to provide digital stamp papers for various states in India. It can also integrate directly with your pre-filled Legistify stamp wallet for other states.
Integration Steps
1. Obtain API Token: Secure the X-Auth-Token from Legistify for authentication.
2. Create Signature Request:
Configure the headers and request body as outlined in process section.
Perform a request to the Legistify API endpoint.
Process
1. Create E-Stamp Request
Creates a new e-stamp request and processes payment from your organization’s stamp wallet.
Method: POST
Headers:
Content-Type: application/json
X-Auth-Token: Token Provided by Legistify
Request Body:
stateOfIssuingStamp: State name (Delhi, Karnataka, Gujarat, Tamil Nadu, Rajasthan).
stateCode: State code (DL, KA, GJ, TN, RJ).
stampDuty: Amount of stamp duty in rupees.
purpose: Purpose of the stamp (e.g., "Contract Agreement").
description: Detailed description of the document.
considerationAmount: Total consideration amount.
firstPartyName: Name of the first party.
firstPartyLocality: Locality of first party.
firstPartyStreetAddress: Street address of first party.
firstPartyState: Object with value (state code) and label (state name).
firstPartyCity: City of first party.
firstPartyPinCode: PIN code of first party.
secondPartyName: Name of the second party.
secondPartyLocality: Locality of second party.
secondPartyStreetAddress: Street address of second party
secondPartyState: Object with value (state code) and (state name).
secondPartyCity: City of second party.
secondPartyPinCode: PIN code of second party.
docCategory: Object with value (category code) and label (category name).
To see value & label for docCategory: Document Category Data
Sample Request Body:
{
"stateOfIssuingStamp": "Delhi",
"stateCode": "DL",
"stampDuty": 100,
"purpose": "Contract Agreement",
"description": "Rental agreement for commercial property",
"considerationAmount": 50000,
"firstPartyName": "John Doe",
"firstPartyLocality": "Connaught Place",
"firstPartyStreetAddress": "123 Main Street",
"firstPartyState": {
"value": "DL",
"label": "Delhi"
},
"firstPartyCity": "New Delhi",
"firstPartyPinCode": "110001",
"secondPartyName": "Jane Smith",
"secondPartyLocality": "Khan Market",
"secondPartyStreetAddress": "456 Park Avenue",
"secondPartyState": {
"value": "DL",
"label": "Delhi"
},
"secondPartyCity": "New Delhi",
"secondPartyPinCode": "110003",
"docCategory": {
"value": "1",
"label": "Affidavit"
}
}
Sample Success Response (200):
{
"status": true,
"code": 200,
"msg": "E-Stamp successfully procured.",
"data": {
"transactionId": "TXN123456789",
"uniqueId": "REF987654321",
"base64Stamp": "JVBERi0xLjQKJcOkw7zDtsO..."
}
}
Sample Error Response (400):
{
"status": false,
"msg": "Sorry, you do not have enough credits in your stamp wallet. Please contact Legistify support to add credits."
}
Sample Error Response (400):
{
"status": false,
"msg": "State of issuing stamp is required"
}
2. Get E-Stamp (if ready)
Retrieves an existing e-stamp using the transaction ID and unique ID from the creation request.
Method: POST
Headers:
X-Auth-Token: Token Provided by Legistify
Content-Type: application/json
Request Body:
transactionId: Transaction ID from create request
uniqueId: Unique ID from create request
Sample Request Body:
{
"transactionId": "TXN123456789",
"uniqueId": "REF987654321"
}
Success Response (200):
{
"status": true,
"msg": "E-Stamp successfully procured.",
"data": {
"transactionId": "TXN123456789",
"uniqueId": "REF987654321",
"base64Stamp": "JVBERi0xLjQKJcOkw7zDtsO..."
}
}
Error Response (400):
{
"status": false,
"msg": "Stamp request not found"
}
Error Response (400):
{
"status": false,
"msg": "Stamp is not procured. Try again in some time"
}
3. Get Stamp from Wallet
Retrieves an existing stamp from your organization’s wallet based on criteria.
Method: POST
Headers:
X-Auth-Token: Token Provided by Legistify
Content-Type: application/json
Body:
{
"stateOfIssuingStamp": "Delhi",
"stampDuty": 100,
"firstPartyName": "John Doe"
}
Success Response (200):
{
"status": true,
"msg": "Stamp successfully procured.",
"data": {
"uniqueId": "REF987654321",
"base64Stamp": "JVBERi0xLjQKJcOkw7zDtsO..."
}
}
Error Response (400):
{
"status": false,
"code": 400,
"msg": "No stamp found, please check with customer support team."
}