Skip to main content

Create your first Notarization

Authentication Methods

ACCESS TOKEN

To use eNotaryLog’s API, you have to send a valid Access Token in the Authorization header, using the Bearer authentication scheme. If you do not have a valid Access Token, please reach out to your account representative.

In This Tutorial You Will

  • Create a new notarization session

API Documentation

Our API documents are located here

Creating your first Notarization Session

In this section, we’ll create your first notarization session with ONE document and ONE signer.

The following configurable variables will be turned on for this notarization session:

  • KBA Required
  • Credential Analysis Required
  • No Expiration Date on Session

Steps

  1. Upload Documents
  2. Create Notarization

Upload Documents

Request

// POST /documents/upload
// Content-type: multipart/form-data

Response

Save the docId and gcsRefId for the next Call

{
"data": [
{
"docId": "1c51ca5d-8a52-4707-8743-9649d9a32818",
"gcsRefId": "1c51ca5d-8a52-4707-8743-9649d9a32818/template_test.pdf"
}
]
}

Examples

curl

curl --location 'https://public-api.enotarylog.com/documents/upload' \
--header 'Authorization: Bearer <accessToken>' \
--form 'files=@"/Users/james/Downloads/myfiled2.pdf"' \
--form 'files=@"/Users/james/Downloads/myfile1.pdf"'

axios

const axios = require("axios");
const FormData = require("form-data");
const fs = require("fs");
let data = new FormData();
data.append("files", fs.createReadStream("/Users/james/myfile1.pdf"));
data.append("files", fs.createReadStream("/Users/james/myfile2.pdf"));

const config = {
method: "post",
url: "https://public-api.enotarylog.com/documents/upload",
headers: {
Authorization: "Bearer <accessToken>",
...data.getHeaders(),
},
data: data,
};

axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});

Create Notarization

Request

// POST /notarizations

Parameters

  • docs (array of objects) - An array of objects containing the docId and gcsRefId from the document upload step.
  • signers (array of objects) - An array of signer objects with the signer's information.
  • notaryQueue (boolean) - If set to true, the notarization session will be assigned to the organization's notary queue.
  • kba (boolean) - If set to true, Knowledge Based Authentication will be required for signers.
  • credentialAnalysis (boolean) - If set to true, signers will be required to submit a photo ID for credential analysis.

Example Request Body

{
"notarizationType": "ron",
"witnesses": 0,
"assignTo": {
"organizationId": null,
"notaryId": null
},
"externalId": null,
"primarySigner": {
"id": "{generate a unique UUID - use this in your tags if you have those}",
"email": "user.email",
"firstName": "user.firstName",
"middleName": null,
"lastName": "user.lastName",
"kbaRequired": true,
"credAnalysisRequired": true,
"externalId": null
},
"notifyParticipants": {
"email": true
},
"notificationEmails": [
"{email of additional people you want notifiied about the transaction status updates}"
],
"documents": [
{
"docId": "{docId from the upload endpoint}",
"title": "title of the document",
"gcsRefId": "{gcsRefId from the upload endpoint}",
"description": "description for the document",
"tags": []
}
],
"taggingOrganizationId": null
}

Example Response Body

{
"data": {
"id": "cf402285-ba57-4380-83e7-d48d63480c37",
"notarizationType": "ron",
"status": "pending_verification",
"witnesses": 0,
"scheduleDate": null,
"externalId": null,
"startTime": null,
"endTime": null,
"duration": null,
"expiresAt": null,
"notificationEmails": [],
"notifyParticipants": {
"email": true
},
"assignTo": {
"organizationId": "8d976a23-b865-4fcd-9165-ddc0aedaf614",
"notaryId": null
},
"primarySigner": {
"id": "d0e2eb61-54bd-4905-9f2d-a40cc48af131",
"pinCode": "26940",
"sessionLink": "https://enlapp.page.link/bAwbiZt41fTmm7UB6",
"kbaRequired": true,
"credAnalysisRequired": true,
"inPersonIdv": false,
"firstName": "firstName",
"middleName": null,
"lastName": "lastName",
"email": "signerone@someemail.com",
"phone": "undefined",
"address1": null,
"address2": null,
"city": null,
"state": null,
"zip": null
},
"participants": [],
"documents": [
{
"docId": "d0e2eb61-54bd-4905-9f2d-a40cc48af13b",
"gcsRefId": "d0e2eb61-54bd-4905-9f2d-a40cc48af13b/Document To Notarize.pdf",
"title": "title of the document",
"description": "description for the document",
"tags": ""
}
]
}
}

Examples

curl

curl --location 'https://public-api.enotarylog.com/notarizations' \
--header 'Authorization: Bearer <accessToken>' \
--header 'Content-Type: application/json' \
--data-raw '{
"notarizationType": "ron",
"witnesses": 0,
"assignTo": {
"organizationId": null,
"notaryId": null
},
"externalId": null,
"primarySigner": {
"id": "{generate a unique UUID - use this in your tags if you have those}",
"email": "user.email",
"firstName": "user.firstName",
"middleName": null,
"lastName": "user.lastName",
"kbaRequired": true,
"credAnalysisRequired": true,
"externalId": null
},
"notifyParticipants": {
"email": true
},
"notificationEmails": [
"{email of additional people you want notifiied about the transaction status updates}"
],
"documents": [
{
"docId": "{docId from the upload endpoint}",
"title": "title of the document",
"gcsRefId": "{gcsRefId from the upload endpoint}",
"description": "description for the document",
"tags": []
}
],
"taggingOrganizationId": null
}'

axios

const axios = require("axios");

const data = {
notarizationType: "ron",
witnesses: 0,
assignTo: {
organizationId: null,
notaryId: null,
},
externalId: null,
primarySigner: {
id: "{generate a unique UUID - use this in your tags if you have those}",
email: "user.email",
firstName: "user.firstName",
middleName: null,
lastName: "user.lastName",
kbaRequired: true,
credAnalysisRequired: true,
externalId: null,
},
notifyParticipants: {
email: true,
},
notificationEmails: [
"{email of additional people you want notifiied about the transaction status updates}",
],
documents: [
{
docId: "{docId from the upload endpoint}",
title: "title of the document",
gcsRefId: "{gcsRefId from the upload endpoint}",
description: "description for the document",
tags: [],
},
],
taggingOrganizationId: null,
};

const config = {
method: "post",
url: "https://public-api.enotarylog.com/notarizations",
headers: {
Authorization: "Bearer <accessToken>",
"Content-Type": "application/json",
},
data: data,
};

axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});

Once the create notarization call has returned successfully, the signers will receive emails for their notarization session.

Conclusion

In this tutorial, you learned how to use the Notarization API to notarize documents. We covered the following steps:

  1. Authenticate with the eNotaryLog API
  2. Upload a document
  3. Request notarization

By following these steps, you can create a robust application that leverages the Notarization API to securely and efficiently notarize documents for your users.