Webhooks
Webhooks allow DIVE Online to integrate with additional applications by notifying them when a verification event has completed.
1. Creating a New Webhook
Create a webhook in the DIVE Online Web Portal here
2. Click the Add Webhook button
3. Choose the Webhook type
DIVE Online supports two types of Webhooks:
- VeriScan - Sends a Webhook event to the IDScan.net VeriScan application when a verification event occurs.
- Custom - Sends a Webhook event to a custom URL when a verification event occurs.
Enter the URL that the Webhook request should target when the validation event occurs. You will be able to add custom headers that will be sent along with verification data to authenticate the request being made.
Note
URL must be valid and the application must accept POST requests
You should immediately see the newly created webhook in the list.
2. Creating request
Create a new verification request by sending an SMS/Email message to an end user.
3. Receiving data
When the verification process on the DIVE API server is complete all registered and enabled Webhooks will receive an HTTP POST request containing the verification data in the body.
Note
We have a retry policy set to 10 retries before considering a webhook endpoint unreachable.
Request example:
[POST] https://my.webhook.com/url
{
"Id": 90831,
"Created": "2026-07-14T14:08:34.0630296Z",
"Data": {
"DocumentValidationResult": {
"IsShuftiSuccess": null,
"IsDriversLicenseRealID": false,
"IsCommercialDriversLicense": false,
"IsDriveOnly": null,
"IsVeteran": null,
"IsDonor": false,
"IsLimitedDurationDocument": null,
"IsInvalidated": null,
"IsNonDomicile": false,
"IsEnhancedCredential": false,
"IsPermit": false,
"IsInterlockRestricted": false,
"IsSampleDocument": false,
"PdfParseResult": {
"DisplayName": "PDF 417",
"Reason": null,
"Success": true
},
"MrzParseResult": {
"DisplayName": "MRZ",
"Reason": null,
"Success": null
},
"OcrParseResult": {
"DisplayName": "OCR",
"Reason": null,
"Success": true
}
},
"DocumentConfidenceScores": {
"PrivateName": -1,
"Abbr3Country": -1,
"AbbrCountry": -1,
"Address": 98,
"AuditInformation": -1,
"CardRevisionDate": -1,
"City": 100,
"Class": -1,
"Country": 100,
"Dob": 100,
"DocumentDiscriminator": -1,
"EndorsementsCode": -1,
"Expires": 100,
"Eyes": 100,
"FamilyName": 100,
"FirstName": 50,
"FullName": 71,
"Gender": 100,
"Hair": -1,
"HazmatExpirationDate": -1,
"Height": 100,
"ID": 100,
"IDType": 100,
"Iin": -1,
"InventoryControlNumber": -1,
"Issued": 100,
"IssuedBy": -1,
"MaidenName": -1,
"MiddleName": 81,
"MmicLicenseType": -1,
"MmicPracticionerNumber": -1,
"NamePrefix": -1,
"PersonalNumber": -1,
"PlaceOfBirth": -1,
"PostalBox": -1,
"Race": -1,
"RestrictionCode": -1,
"State": 100,
"Suffix": -1,
"Template": -1,
"Weight": 100,
"WeightKG": -1,
"Zip": 100
},
"AntiSpoofingVerificationResult": {
"AntiSpoofingFaceImageConfidence": 99,
"IsDataFieldsTampered": null,
"IsPhotoFromDocumentTampered": false
},
"FaceMatchVerificationResult": {
"FalseAcceptanceRate": 0,
"FaceMatchConfidence": 94,
"IsSuspiciousPhoto": true
},
"ConsentForm": true,
"VerifyFace": true,
"IsOcrEnabled": true,
"IsBackOrSecond": true,
"ImagesUrl": "https://api-diveonline.idscan.net/api/v2.0/private/Applicants/00000000-0000-0000-0000-000000000000/Attempts/10002/Images",
"ValidationRequestId": "00000000-0000-0000-0000-000000000000",
"ValidationResponseId": 10002,
"AuthenticationResults": null,
"DocumentType": 1,
"Document": {
"Abbr3Country": "USA",
"AbbrCountry": null,
"Address": "123 MAIN STREET APT 4B",
"AuditInformation": "1234",
"CardRevisionDate": "2015-02-10",
"City": "SPRINGFIELD",
"Class": "E",
"Country": "UNITED STATES OF AMERICA",
"Dob": "1990-01-01",
"DocumentDiscriminator": null,
"EndorsementsCode": null,
"Expires": "2028-01-01",
"Eyes": "BROWN",
"FamilyName": "DOE",
"FirstName": "JOHN",
"FullName": "JOHN MICHAEL DOE JR",
"Gender": "MALE",
"Hair": null,
"HazmatExpirationDate": null,
"Height": "70",
"ID": "D1234567",
"IDType": "Driver License",
"Iin": "636007",
"InventoryControlNumber": "0012345678901234",
"Issued": "2021-01-01",
"IssuedBy": "LA",
"MaidenName": null,
"MiddleName": "MICHAEL",
"MmicLicenseType": null,
"MmicPracticionerNumber": null,
"NamePrefix": null,
"PersonalNumber": null,
"PlaceOfBirth": null,
"PostalBox": null,
"Race": null,
"RestrictionCode": "01 02",
"Suffix": "JR",
"State": "LA",
"Weight": "180",
"WeightKG": "82",
"Zip": "70001-0000",
"Template": null,
"PrivateName": null
},
"AttemptsCount": 4,
"AttemptsLeft": 0,
"Status": 0,
"ValidationStatus": {
"Expired": false,
"DocumentIsValid": true,
"FaceIsValid": true,
"AntiSpoofingIsValid": true
},
"InvalidDataErrors": [],
"FaceSuccess": true,
"DocumentSuccess": true,
"DocumentHasNotExpired": true,
"HasRiskEvents": true,
"DocumentValidationTests": [
{
"DisplayName": "Address",
"Name": "AddressValidation",
"Status": 1,
"StatusString": "Completed",
"Reason": null,
"RawResponse": {
"zipValid": true,
"zipStateValid": true,
"zipCityStateValid": true,
"addressValid": false,
"secAbbrValid": false,
"plus4Valid": null,
"zipValidMessage": null,
"zipStateValidMessage": null,
"zipCityStateValidMessage": null,
"addressValidMessage": null,
"secAbbrValidMessage": null,
"plus4ValidMessage": null,
"addresses": [
{
"fullAddress": "123 MAIN ST APT 4B SPRINGFIELD LA 70001",
"addressLine": "MAIN ST SPRINGFIELD LA 70001",
"zipCode": "70001",
"stPreDirAbbr": null,
"stName": "MAIN",
"stSuffixAbbr": "ST",
"stPostDirAbbr": null,
"addressPrimaryLowNumber": "0000000100",
"addressPrimaryHighNumber": "0000000199",
"city": "SPRINGFIELD",
"state": "LA",
"cityAliasName": "SPRINGFIELD",
"cityAliasAbbreviation": null,
"fromLatitude": 30.020391,
"toLatitude": 30.020351,
"fromLongitude": -90.247657,
"toLongitude": -90.246788,
"rank": 96,
"coordinatesAreCalculated": false,
"fromCache": true,
"input": null,
"updateKey": "X000000000",
"message": null,
"country": null
}
],
"isValid": true,
"message": "Secondary Unit Number out of range"
}
},
{
"DisplayName": "DMV",
"Name": "DMVValidation",
"Status": 2,
"StatusString": "Skipped",
"Reason": "LA state is not yet supported by DMV Data Verification service. Check back later.",
"RawResponse": null
},
{
"DisplayName": "IdentiFraud",
"Name": "IdentiFraudValidation",
"Status": 1,
"StatusString": "Completed",
"Reason": null,
"RawResponse": {
"verified": false,
"data": {
"questions": [],
"addressVerificationResult": {
"code": "G1",
"message": "First name does not match or is missing, exact match on last name; Exact match on address"
},
"dateOfBirthResult": {
"code": "5",
"message": "Consumer not on file \u2013 no record."
},
"driverLicenseResult": {
"code": "NA",
"message": "DL data not available for this state."
},
"ssnResult": {
"code": "M",
"message": "Social Security Number was not supplied on search request Header file searched by name and address with no match found."
},
"workflowOutcome": {
"code": "R",
"message": "Needs Further Review"
},
"ofacValidationResult": {
"code": "1",
"message": "No match to name or address."
}
}
}
},
{
"DisplayName": "CriminalRecords",
"Name": "CriminalRecords",
"Status": 2,
"StatusString": "Skipped",
"Reason": "Available on demand",
"RawResponse": null
}
],
"CallBackUrl": null,
"NotificationType": 0,
"IsCompleted": true,
"Reference": "0000000000000000000000000000000000000000",
"ReferenceId": null,
"MetaData": {}
},
"EventType": 0
}
Webhook Data
Id– identifier of the current webhook event. It is unique for every validation requestCreated– webhook event creation dateData– contains JSON formatted data with parsed document data and validation resultEventType– indicates type of the event connected with the validation result- 0 - Success. Document passed checks
- 1 - Fail. Document failed one or more checks
- 2 - InvalidData. Validation request contains invalid data
- 3 - Error. Service error
ImagesUrl– URL to fetch the images captured for this attempt. Requires the same Authorization: Bearer header as other requests. Clicking this link directly (in a browser or from a client's auto-linkified response view) will fail, since no client carries your auth header over to a plain link click — call it as a new GET authenticated request instead.


