Page last updated: June 1, 2026
ID Proofing
The ID Proofing API allows you to create a session where a participant's identity is verified through ID scanning and Knowledge-Based Authentication (KBA) — without requiring a live notary session. This is useful when your workflow requires identity verification as a standalone step.
To create an ID proofing session, send a POST request to the /api/v3/id-proofing/create endpoint. Below is an example:
curl -X POST "https://notarylive.com/api/v3/id-proofing/create" \
-H 'Content-Type: application/json' \
-u 'api_test_user:api_test_key' \
-d $'{"internal_id": "((internal_order_id))", "participant_email": "john.doe@notarylive.com", "participant_first_name": "John", "participant_last_name": "Doe"}'
A successful request will generate the following response:
{
"success": 1,
"link_to_order": "https://notarylive.com/id-proofing/order/{unique_order_identifier}"
}
Send the link_to_order to your participant. They will be guided through the ID scanning and KBA steps at that URL.
Validation Failures
Invalid credentials will return a 401 response with the message: HTTP/1.0 401 Unauthorized
Invalid or missing payload data will return a 400 HTTP response with a JSON body containing success =
0 as well as an array of errors containing both a standardized error code, and a
human-readable description of what caused the error:
If you continue having issues, please take a look at our troubleshooting guide.
curl -X POST "https://notarylive.com/api/v3/id-proofing/create" \
-H 'Content-Type: application/json' \
-u 'api_test_user:api_test_key' \
-d $'{"internal_id":"internal_order_id","participant_email":"john.doe@notarylive.com","participant_last_name":"Doe"}'
{
"success": 0,
"errors": [
{
"code": "validation_failed",
"message": "The participant first name field is required."
}
]
}
Validation Rules
The following are the validation rules for all arguments within the ID proofing creation API call:
| Parameter | Validation Rules |
|---|---|
biometrics_enabled |
Optional | Boolean | Defaults to false | When true, the participant must complete a biometric (selfie) check. Cannot be enabled unless id_scan_enabled is also true |
company_email |
Optional | Email | Max length: 100 characters | The email address NotaryLive will send status updates to as the order moves through the system |
confirmation_btn_text |
Required if confirmation_btn_url is set | String | Max length: 50 characters | The name of the organization or workflow that your participants are returning to after completing the session |
confirmation_btn_url |
Optional | Url | The url the confirmation page button will link out to |
expired_order_redirect |
Optional | Url | The url NotaryLive will redirect participants to when the order has expired due to inactivity |
id_scan_enabled |
Optional | Boolean | Defaults to true | When true, the participant must scan a government-issued photo ID. Cannot be disabled at the same time as kba_enabled |
internal_id |
Optional | String | Max length: 191 characters | A value you supply that helps identify this record in your internal systems |
kba_enabled |
Optional | Boolean | Defaults to true | When true, the participant must answer Knowledge-Based Authentication (KBA) questions. Cannot be disabled at the same time as id_scan_enabled |
participant_email |
Required | Email | Max length: 100 characters | The email address of the participant |
participant_first_name |
Required | String | Max length: 35 characters | Letters, commas, periods, hyphens, apostrophes and spaces only | The first name of the participant |
participant_last_name |
Required | String | Max length: 50 characters | Letters, commas, periods, hyphens, apostrophes and spaces only | The last name of the participant |
webhook_url |
Optional | Url | The url NotaryLive will POST status updates to as the order moves through the system |
Verification Steps
Each ID proofing session is made up of one or more verification steps. You can toggle which steps a participant must complete with the biometrics_enabled, id_scan_enabled, and kba_enabled parameters. By default an order requires the ID scan and KBA, with biometrics disabled.
The following rules govern which combinations are allowed. A request that violates either rule returns a 400 response with a validation_failed error:
- Biometrics requires the ID scan.
biometrics_enabledcan only betruewhenid_scan_enabledis alsotrue. - At least one of the ID scan or KBA is required.
id_scan_enabledandkba_enabledcannot both befalsein the same request.
Webhook Events
If you supply a webhook_url, NotaryLive will POST a JSON event to it as the participant moves through the ID proofing session. If you supply a company_email instead (and no webhook_url), the same event data is emailed to that address. All ID proofing webhook events are sent with Content-Type: application/json.
| Event Name | JSON Payload |
identity_verified |
Please note: The checks object reflects which verification steps were enabled for the order (see biometrics_enabled, id_scan_enabled, and kba_enabled above). The verified_person object holds the identity data read from the scanned ID; it is only included when an ID scan was performed, so orders that run KBA alone will omit it.
|
Copyright © 2026, NotaryLive.com