The eSigner document signing gateway API distributes as a docker image and installs on the customer’s premise. It performs the following actions:
- The application sends the unsigned PDF document to the document signing gateway API
- The document signing gateway application computes the PDF hash and sends to the eSigner CSC API for hash signing
- The signed hash is then embedded inside the PDF document as part of the PDF document signing operation
- The signed PDF document is timestamped using SSL.com TSA
- The CRL-based revocation of the certificate chain is fetched and embedded inside the PDF document to make it LTV enabled
Requirements
Request:-
URL:- /v1/pdf/eseal
A valid access token is required to access the API. A guide on how to retrieve the Access Token can be found on this article: Remote Document Signing with eSigner CSC API
{
"credential_id": "db1653b7-6135-4a10-809b-e29a25d3bb7b",
"page_number": 0,
"signing_reason": "",
"signing_location": "",
"contact_Info": "",
"sig_field_position":{
"x": 160,
"y":245,
"width":250,
"height": 150
},
"hand_signature": "<HAND_SIGNATURE_IMAGE>",
"pdf": ""
}
Legend:
- credential_id – Mandatory credential ID of the eSeal certificate. To know how to identify the credential ID of your certificate, please refer to this guide: https://www.ssl.com/guide/esigner-signing-credential-guide/#ftoc-heading-2
- page_number – Only required for visible signatures. It starts with 0
- signing_reason – Optional signing reason
- signing_location – Optional signing location
- contact_info – Optional contact information
- sig_field_position – x, y, width and height of the signature field position. It is only required for visible signatures
- hand_signature – Base64 encoded PNG hand signature image. It is only required for visible signatures and to add hand signature as part of signature appearance
- pdf – Base64 encoded PDF document to sign
Response:-
{
"signed_pdf": ""
}
- signed_pdf – Base64 encoded signed LTV enabled PDF document
Installation Instructions
- Unzip the document signing gateway release
- Open the application.properties files and change accordingly
# For sandbox testing, set the CSR URL to https://cs-try.ssl.com and for production set it to https://cs.ssl.com
csc.url=https://cs-try.ssl.com
# URL of the SSL.com TSA
tsa.url=http://ts.ssl.com
# Port in docker container
server.port=8081
# TLS server certificate settings. One can use self signed certificate or private PKI or public PKI certificate
server.ssl.enabled=true
server.ssl.key-store: ./server.jks
server.ssl.key-password: secret
server.ssl.key-store-password: secret
-
Open the Dockerfile
FROM eclipse-temurin:17.0.9_9-jdk-jammy
# Port on which document signing gateway will be running. This must be same as in application.properties file
EXPOSE 8081
WORKDIR /app
COPY document_signing_gateway-1.0.0.jar /app/
COPY application.properties /app/
COPY server.jks /app/
COPY GoNotoKurrent.ttf /app/
ENTRYPOINT ["java", "-Dspring.config.location=file:/app/application.properties", "-jar", "document_signing_gateway-1.0.0.jar"]
- Install Docker Engine on your machine. Afterward, build the docker image using the following command:
docker build -t document_signing_gateway:1.0.0 .
- Run the container using the following command. It also creates volume for docker signing gateway API log file and port mapping as well.
docker run -it -p 8081:8081 -v document_signing_gateway_logs:/logs document_signing_gateway:1.0.0
- Access the document signing gateway API using an application or POSTMAN tool.