Get started
The ONC API provides programmatic access to start Notary/e-Sign sessions, complete the process and retrieve signed documents.
Authentication
# Here is a curl example
curl \
-u CLIENT_ID:CLIENT_SECRET
-X POST https://app.onlinenotarycenter.com/oauth/token \
-d 'grant_type=authorization_code&code=AUTHORIZATION_CODE'
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.onlinenotarycenter.com/oauth/token');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, 'CLIENT_ID:CLIENT_SECRET');
curl_setopt($ch, CURLOPT_POSTFIELDS, ['grant_type=authorization_code&code=AUTHORIZATION_CODE']);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
Many operations require OAuth 2.0 authentication or return additional information if you are authenticated. Additionally, you can make more requests per hour when you are authenticated.
We Also have a long-live token option available, that will be provided based on request.
1. Use authorization URL with your CLIENT_ID to retrieve the authorization code.
2. Use authorization code along with CLIENT_ID and CLIENT_SECRET to request the access token and refresh token.
You can now authenticate all your requests by sending a token in the Authorization header.
Create Notary Session
# Here is a curl example
curl \
-H 'Authorization: Bearer [TOKEN]'
-X POST https://app.onlinenotarycenter.com/api/createEsignSession \
-F files[0]=@/var/www/documents/test-1.pdf \
-F files[1]=@/var/www/documents/test-2.pdf
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.onlinenotarycenter.com/api/create-notary-session');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
$post = array(
'files[0]' => curl_file_create('/var/www/documents/test-1.pdf', 'mime', 'test1.pdf'),
'files[1]' => curl_file_create('/var/www/documents/test-2.pdf', 'mime', 'test2.pdf')
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$headers = array();
$headers[] = 'Authorization: Bearer [TOKEN]';
$headers[] = 'Content-Type: multipart/form-data';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
{
"title": "Customer Notary",
"created_by": "9999999999",
"notary_id": "97f1cd16-5e43-11ee-913f-2cea7fe1bf2e",
"status": "active"
}
{
"error": "invalid_token",
"error_description": "The access token provided is invalid"
}
To create a new notary session you need to make a POST call to the following url and pass PDF file(s)
https://app.onlinenotarycenter.com/api/create-notary-session
This will return a NOTARY_SESSION_ID which will be required in subsequent calls
QUERY PARAMETERS
Field | Type | Description |
---|---|---|
Bearer | String | Your ACCESS_TOKEN |
PDF File(s) | Array of Absolute Path(s) | Required array of absolute path for a single PDF file or multiple PDF files. |
Adding Signer(s)
# Here is a curl example
curl \
-H 'Authorization: Bearer [TOKEN]' \
-H 'Content-Type: application/json' \
-X POST https://app.onlinenotarycenter.com/api/update-notary-signers \
-d '{
"notary_id": "NOTARY_SESSION_ID",
"contact_type": "self",
"share_room": "0",
"first_name": "SIGNER",
"last_name": "S_LASTNAME",
"email": "MAIN_SIGNER_EMAIL,
"phone": "999 999 9999",
"other_signers": [
{
"first_name": "SIGNER1",
"last_name": "S_LASTNAME1",
"email": "[email protected]",
"phone": "444 444 4444"
},
{
"first_name": "SIGNER2",
"last_name": "S_LASTNAME2",
"email": "[email protected]",
"phone": "555 555 5555"
}
]
}'
$ch = curl_init();
$headers = array();
$headers[] = 'Authorization: Bearer [TOKEN]';
$headers[] = 'Content-Type: application/json';
$DATA = '{
"notary_id": "NOTARY_SESSION_ID",
"contact_type": "self",
"share_room": "0",
"first_name": "SIGNER",
"last_name": "S_LASTNAME",
"email": "MAIN_SIGNER_EMAIL,
"phone": "999 999 9999",
"other_signers": [
{
"first_name": "SIGNER1",
"last_name": "S1_LASTNAME",
"email": "[email protected]",
"phone": "444 444 4444"
},
{
"first_name": "SIGNER2",
"last_name": "S2_LASTNAME",
"email": "[email protected]",
"phone": "555 555 5555"
}
]
}';
curl_setopt($ch, CURLOPT_URL, 'https://app.onlinenotarycenter.com/api/update-notary-signers');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $DATA);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
{
"notary_id": "e350eb84-5e4f-11ee-913f-2cea7fe1bf2e",
"type": "notary",
"title": "Customer Notary",
"status": "pending",
"notarial_act": "",
"meeting_date": null,
"meeting_start": "00:00:00",
"meeting_end": "00:00:00",
"user_live_date": null,
"is_live": "0",
"vonage_sess_id": "",
"notarized_by": "0",
"payment_type": "standard",
"loan_signing": "0",
"notary_ip_address": "",
"journal_note": "",
"created_by": "364",
"redirect_uri": "",
"date_created": "2023-09-28 15:39:30",
"active": "1"
}
{
"error": "invalid_token",
"error_description": "The access token provided is invalid"
}
To add the main signer and additional signer details you need to make a POST call to the following url passing signer(s) information
https://app.onlinenotarycenter.com/api/update-notary-signers
QUERY PARAMETERS
Field | Type | Description |
---|---|---|
Bearer | String | Your ACCESS_TOKEN |
notary_id | String | The session NOTARY_SESSION_ID that was created by /api/create-notary-session end point. |
contact_type | string | Signer type (self/other). |
share_room | Integer | 0 if signers are using different devices, 1 if signers are sharing the same device. |
first_name | String | First Name of the main Signer. |
last_name | String | Last Name of the main Signer. |
String | Email of the main Signer. | |
phone | String | Phone number of the main Signer. |
other_signers | Array (JSON) | Array of signers (Same format as the main signer). |
Prepare Notary Session
# Here is a curl example
curl \
-H 'Authorization: Bearer [TOKEN]' \
-H 'Content-Type: application/json' \
-X POST https://app.onlinenotarycenter.com/api/prepare-notary-session \
-d '{
"notary_id": "NOTARY_SESSION_ID",
"business_pay": "true",
"redirect_uri": "REDIRECT_URL"
}'
$ch = curl_init();
$headers = array();
$headers[] = 'Authorization: Bearer [TOKEN]';
$headers[] = 'Content-Type: application/json';
$DATA = '{
"notary_id": "NOTARY_SESSION_ID",
"business_pay": "true",
"redirect_uri": "REDIRECT_URL"
}';
curl_setopt($ch, CURLOPT_URL, 'https://app.onlinenotarycenter.com/api/prepare-notary-session');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $DATA);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
{
"success": "true",
"session_link": "http://devserver:1200/notary/client-join/e350eb84-5e4f-11ee-913f-2cea7fe1bf2e",
"passcode": "HyufXF"
}
{
"error": "invalid_token",
"error_description": "The access token provided is invalid"
}
Final step is to prepare the session and send notification to all signers
We may also pass a URL to redirect the signers after the session is completed.
https://app.onlinenotarycenter.com/api/prepare-notary-session
In repsponse we will get complete link with a unique password to start the notarization session.
QUERY PARAMETERS
Field | Type | Description |
---|---|---|
Bearer | String | Your ACCESS_TOKEN |
notary_id | String | The session NOTARY_SESSION_ID that was created by /api/create-notary-session end point. |
business_pay | Boolean | (Optional) To control if the business owner (API account) is paying for the session. |
redirect_uri | String | URL to redirect users after the session is completed. |
Download Notary Session Files
# Here is a curl example
curl \
-H 'Authorization: Bearer [TOKEN]' \
-H 'Content-Type: application/json' \
-X GET https://app.onlinenotarycenter.com/api/download-notarized-files/NOTARY_SESSION_ID
$ch = curl_init();
$headers = array();
$headers[] = 'Authorization: Bearer [TOKEN]';
curl_setopt($ch, CURLOPT_URL, 'https://app.onlinenotarycenter.com/api/download-notarized-files/NOTARY_SESSION_ID');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $DATA);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
Zip file content
{
"error": "invalid_token",
"error_description": "The access token provided is invalid"
}
After the session is completed, download the session files in a zip package using below end-point
https://app.onlinenotarycenter.com/api/download-notarized-files/NOTARY_SESSION_ID
The response contains all notarized files as content of a zip file.
QUERY PARAMETERS
Field | Type | Description |
---|---|---|
Bearer | String | Your ACCESS_TOKEN |
notary_id | String | The session NOTARY_SESSION_ID that was created by /api/create-notary-session end point. |
Create e-Sign Session
# Here is a curl example
curl \
-H 'Authorization: Bearer [TOKEN]'
-X POST https://app.onlinenotarycenter.com/api/createEsignSession \
-F files[0]=@/var/www/documents/test-1.pdf \
-F files[1]=@/var/www/documents/test-2.pdf
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.onlinenotarycenter.com/api/create-esign-session');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
$post = array(
'files[0]' => curl_file_create('/var/www/documents/test-1.pdf', 'mime', 'test1.pdf'),
'files[1]' => curl_file_create('/var/www/documents/test-2.pdf', 'mime', 'test2.pdf')
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$headers = array();
$headers[] = 'Authorization: Bearer [TOKEN]';
$headers[] = 'Content-Type: multipart/form-data';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
{
"title": "Customer Notary",
"created_by": "9999999999",
"notary_id": "97f1cd16-5e43-11ee-913f-2cea7fe1bf2e",
"status": "active"
}
{
"error": "invalid_token",
"error_description": "The access token provided is invalid"
}
To create a new e-Sign session you need to make a POST call to the following url and pass your PDF file(s)
https://app.onlinenotarycenter.com/api/create-esign-session
This will return a ESIGN_SESSION_ID which will be required in subsequent calls
QUERY PARAMETERS
Field | Type | Description |
---|---|---|
Bearer | String | Your ACCESS_TOKEN |
PDF File(s) | Array of Absolute Path(s) | Required array of absolute path for a single PDF file or multiple PDF files. |
Adding Signer(s)
# Here is a curl example
curl \
-H 'Authorization: Bearer [TOKEN]' \
-H 'Content-Type: application/json' \
-X POST https://app.onlinenotarycenter.com/api/update-esign-signers \
-d '{
"notary_id": "ESIGN_SESSION_ID",
"contact_type": "self",
"share_room": "0",
"first_name": "SIGNER",
"last_name": "S_LASTNAME",
"email": "MAIN_SIGNER_EMAIL,
"phone": "999 999 9999",
"other_signers": [
{
"first_name": "SIGNER1",
"last_name": "S_LASTNAME1",
"email": "[email protected]",
"phone": "444 444 4444"
},
{
"first_name": "SIGNER2",
"last_name": "S_LASTNAME2",
"email": "[email protected]",
"phone": "555 555 5555"
}
]
}'
$ch = curl_init();
$headers = array();
$headers[] = 'Authorization: Bearer [TOKEN]';
$headers[] = 'Content-Type: application/json';
$DATA = '{
"notary_id": "ESIGN_SESSION_ID",
"contact_type": "self",
"share_room": "0",
"first_name": "SIGNER",
"last_name": "S_LASTNAME",
"email": "MAIN_SIGNER_EMAIL,
"phone": "999 999 9999",
"other_signers": [
{
"first_name": "SIGNER1",
"last_name": "S1_LASTNAME",
"email": "[email protected]",
"phone": "444 444 4444"
},
{
"first_name": "SIGNER2",
"last_name": "S2_LASTNAME",
"email": "[email protected]",
"phone": "555 555 5555"
}
]
}';
curl_setopt($ch, CURLOPT_URL, 'https://app.onlinenotarycenter.com/api/update-esign-signers');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $DATA);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
{
"notary_id": "e350eb84-5e4f-11ee-913f-2cea7fe1bf2e",
"type": "notary",
"title": "Customer Notary",
"status": "pending",
"notarial_act": "",
"meeting_date": null,
"meeting_start": "00:00:00",
"meeting_end": "00:00:00",
"user_live_date": null,
"is_live": "0",
"vonage_sess_id": "",
"notarized_by": "0",
"payment_type": "standard",
"loan_signing": "0",
"notary_ip_address": "",
"journal_note": "",
"created_by": "364",
"redirect_uri": "",
"date_created": "2023-09-28 15:39:30",
"active": "1"
}
{
"error": "invalid_token",
"error_description": "The access token provided is invalid"
}
To add the main signer and additional signer details you need to make a POST call to the following url passing signer(s) information
https://app.onlinenotarycenter.com/api/update-esign-signers
QUERY PARAMETERS
Field | Type | Description |
---|---|---|
Bearer | String | Your ACCESS_TOKEN |
notary_id | String | The session ESIGN_SESSION_ID that was created by /api/create-esign-session end point. |
contact_type | string | Signer type (self/other). |
share_room | Integer | 0 if signers are using different devices, 1 if signers are sharing the same device. |
first_name | String | First Name of the main Signer. |
last_name | String | Last Name of the main Signer. |
String | Email of the main Signer. | |
phone | String | Phone number of the main Signer. |
other_signers | Array (JSON) | Array of signers (Same format as the main signer). |
Prepare e-Sign Session
# Here is a curl example
curl \
-H 'Authorization: Bearer [TOKEN]' \
-H 'Content-Type: application/json' \
-X POST https://app.onlinenotarycenter.com/api/prepare-esign-session \
-d '{
"notary_id": "ESIGN_SESSION_ID",
"redirect_uri": "REDIRECT_URL"
}'
$ch = curl_init();
$headers = array();
$headers[] = 'Authorization: Bearer [TOKEN]';
$headers[] = 'Content-Type: application/json';
$DATA = '{
"notary_id": "ESIGN_SESSION_ID",
"redirect_uri": "REDIRECT_URL"
}';
curl_setopt($ch, CURLOPT_URL, 'https://app.onlinenotarycenter.com/api/prepare-esign-session');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $DATA);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
{
"success": "true",
"session_link": "http://devserver:1200/notary/client-join/e350eb84-5e4f-11ee-913f-2cea7fe1bf2e",
"passcode": "HyufXF"
}
{
"error": "invalid_token",
"error_description": "The access token provided is invalid"
}
Final step is to prepare the session and send notification to all signers
We may also pass a URL to redirect the signers after the session is completed.
https://app.onlinenotarycenter.com/api/prepare-esign-session
In repsponse we will get complete link with a unique password to start the notarization session.
QUERY PARAMETERS
Field | Type | Description |
---|---|---|
Bearer | String | Your ACCESS_TOKEN |
notary_id | String | The session ESIGN_SESSION_ID that was created by /api/create-esign-session end point. |
redirect_uri | String | URL to redirect users after the session is completed. |
Download e-Sign Session Files
# Here is a curl example
curl \
-H 'Authorization: Bearer [TOKEN]' \
-H 'Content-Type: application/json' \
-X GET https://app.onlinenotarycenter.com/api/download-notarized-files/ESIGN_SESSION_ID
$ch = curl_init();
$headers = array();
$headers[] = 'Authorization: Bearer [TOKEN]';
curl_setopt($ch, CURLOPT_URL, 'https://app.onlinenotarycenter.com/api/download-notarized-files/ESIGN_SESSION_ID');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $DATA);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
Zip file content
{
"error": "invalid_token",
"error_description": "The access token provided is invalid"
}
After the session is completed, download the session files in a zip package using below end-point
https://app.onlinenotarycenter.com/api/download-notarized-files/ESIGN_SESSION_ID
The response contains all signed files as content of a zip file.
QUERY PARAMETERS
Field | Type | Description |
---|---|---|
Bearer | String | Your ACCESS_TOKEN |
notary_id | String | The session NOTARY_SESSION_ID that was created by /api/create-notary-session end point. |
Errors
The ONC API uses the following error codes:
Error Code | Meaning |
---|---|
X000 | Some parameters are missing. This error appears when you don't pass every mandatory parameters. |
X001 |
Unknown or unvalid secret_key . This error appears if you use an unknow API key or if your API key expired.
|
X002 |
Unvalid secret_key for this domain. This error appears if you use an API key non specified for your domain. Developper or Universal API keys doesn't have domain checker.
|
X003 |
Unknown or unvalid user token . This error appears if you use an unknow user token or if the user token expired.
|