Adobe eSign integration with ASP.NET

Adobe Esign

Adobe eSign integration steps:

  1. Setup developer account
  2. Configure API application
  3. Get Adobe Sign Token
  4. Integration with your application
  5. Integrate webhook application in your code

1. Setup developer account

To setup a developer account, visit the following link:

Fill up the details asked in ‘Sign up to create your account’ form and click on ‘Continue’.

2. Configure API application

Once the developer account is created through Step – 1 mentioned above, open  link to login.

Once you logged on using your credentials, follow below steps to Configure API application:

  • Click on Account Tab.
  • Go to Adobe Sign API.
  • Click on API Application.

Adobe eSign integration

  • Click on add (+) Button to Create API Configuration.

Adobe eSign integration

  • Fill up requested details and Click on Save Button.
  • It will Create Your API Configuration Account which you can see in the list. Select that and you will see other options – i.e. View / Edit|Deactivate|Configure OAuth above the grid.
  • Click on View Edit. You can see a popup like below image. You can edit the name of application configuration.

Adobe eSign integration

  • Now Click on Configure OAuth for Application.
  • You need to fill redirect URL and select checkbox as you needed and select option as per permission.
  • Now you had successfully created your Adobe sign configure an account.

 3. Get Adobe Sign Token

  • To get Adobe Sign token, we will need an authorization code. To get the authorization code, you need to create the URL and paste it in your browser:

The URL looks like:{RedirectURI}&response_type=code&client_id={Client ID}&scope= {SCOPE}

  • Redirect URL, ClientID & SCOPE: you will get this from the API application, which you set up, in Step – 2 above.

In our case, the URL will look like:

  • Once you paste the above URL in the browser, it will send a request to Adobe Sign; Adobe Sign will process your request and will redirect you to redirection URI that you provided in above URL. Along with the redirection URL, you will see additional parameters that Adobe Sign has added in redirection URL. Among that parameters, copy the value of ‘Code’, ‘Web access point’ and ‘API access point’ parameters, as we will need those to generate Adobe Sign token as well as call other Adobe Sign APIs from our code. Please see following same redirection URL for your reference:

  • To get Adobe Sign Access Token, make an HTTP POST to the /oauth/token endpoint (using the api_access_point retrieved in the previous step) with the following parameters:

Adobe eSign integrationAdobe eSign integrationYou will Get Response like

Adobe eSign integrationThe Access_Token & Refresh_Token in response is Adobe Sign Access token store that as we will need that while calling Adobe Sign API through our code.

4. Integration with your application

To sign the document through Adobe Sign, you need to do three things as mentioned below:

  1. Create an API client object:

You can do that using the following statement:

var apiClient = new ApiClient(configuration.ClientId, configuration.SecretId, configuration.AccessToken, configuration.RefreshToken, configuration.AccessPointURL);

  1. Upload the document to Adobe Sign

You can upload your document to Adobe Sign server by calling upload document API. Following code outlines how to do that:

var transientDocumentsApi = apiClient.GetTransientDocumentsApi();

var transientDocumentResponce = transientDocumentsApi.CreateTransientDocument(fileByteArray, fileName, mimeType);

  1. Send the document for the signature

To send the document for signature, you first need to create the agreement for the uploaded document. You can do that by calling Adobe Sign API as outlined below:

var agreementsApi = apiClient.GetAgreementsApi();
var agreementCreationInfo = new AgreementCreationInfo();
agreementCreationInfo.FileInfos = new List<FileInfo>()
new FileInfo()
TransientDocumentId = transientDocumentResponce.TransientDocumentId
agreementCreationInfo.ExternalId = new ExternalId()
Id = DateTime.Now.Ticks.ToString()
agreementCreationInfo.Name = documentName + DateTime.Now.ToString();
var participantSetsInfo = new List<ParticipantSetInfo>();
foreach (var participant in userListDetails)
new ParticipantSetInfo()
MemberInfos = new List<ParticipantSetMemberInfo>()
new ParticipantSetMemberInfo()
Email = participant.Email,
Name = (string.IsNullOrEmpty(participant.FirstName) ? string.Empty : participant.FirstName) + (string.IsNullOrEmpty(participant.LastName) ? string.Empty : participant.LastName),
Order = (participant.Sequence == 0 ? 1 : participant.Sequence)
agreementCreationInfo.ParticipantSetsInfo = participantSetsInfo;
agreementCreationInfo.EmailOption = new EmailOption()
SendOptions = new SendOptions()
InitEmails = “ALL”,
InFlightEmails = “ALL”,
CompletionEmails = “ALL”,
agreementCreationInfo.SignatureType = “ESIGN”;
agreementCreationInfo.State = “IN_PROCESS”;
var agreementResponse = agreementsApi.CreateAgreement(agreementCreationInfo);

As soon as you create the document, it will route through defined participate(s) in defined order for signature.

5. Get real time status update

You can get the real time signature status updates of your document by integrating Adobe Webhook with your application.

The following two tabs change content below.
Chirag Prajapati

Chirag Prajapati

Software Developer (.Net) at Dev Information Technology Ltd.
I am Sr. Software Developer at DEV IT having 5+ years of experience in .NET. I work smart and am passionate to work and learn new technologies which can broaden my knowledge. I have experience in technologies as MVC, Angular, SQL Server, Web API, Kendo and DevExpress.
Chirag Prajapati

Latest posts by Chirag Prajapati (see all)

One thought on “Adobe eSign integration with ASP.NET

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>