Webhooks
When a job is completed, Vouched can post the job results to a defined webhook URL. This can be set as callbackURL
in the JS Plugin, the Submit Job or Send Invite API endpoint.
JSON Response
{
"id": "Pzfsv4FmP",
"status": "completed",
"completed": true,
"accountReviewed": null,
"submitted": "2022-05-01T22:59:16+00:00",
"updatedAt": "2022-05-01T22:59:48+00:00",
"reviewedAt": null,
"accountGroupSid": "5OkFFH4--",
"accountId": "wBNItDHMj",
"reviewSuccess": null,
"review": null,
"secondaryPhotos": null,
"request": {
"type": "id-verification",
"callbackURL": "https://your-submitted-callbackURL.com",
"requestInfo": {
"ipaddress": "24.168.30.565",
"useragent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36",
"referer": "http://localhost:3000/"
},
"parameters": {
"email": "[email protected]",
"phone": "111-222-3333",
"firstName": "John",
"lastName": "Smith"
},
"properties": null
},
"surveyPoll": null,
"surveyMessage": null,
"surveyAt": null,
"result": {
"id": "123456",
"firstName": "John",
"lastName": "Smith",
"middleName": "Manthey",
"dob": "08/22/1980",
"expireDate": "08/22/2024",
"issueDate": "09/22/2019",
"birthDate": "08/22/1980",
"class": "C",
"endorsements": "NONE",
"motorcycle": null,
"idFields": [
{
"name": "firstName"
},
{
"name": "lastName"
},
{
"name": "birthDate"
},
{
"name": "class"
},
{
"name": "id"
},
{
"name": "expireDate"
},
{
"name": "issueDate"
},
{
"name": "address"
},
{
"name": "endorsements"
},
{
"name": "lastName"
},
{
"name": "middleName"
}
],
"ipAddress": {
"city": "New York",
"country": "US",
"state": "NY",
"postalCode": "10010",
"location": {
"latitude": 30.6279,
"longitude": -43.8866
},
"userType": "residential",
"isp": "Spectrum",
"organization": "Spectrum",
"isAnonymous": false,
"isAnonymousVpn": false,
"isAnonymousHosting": false,
"confidence": 1,
"warnings": null
},
"aml": null,
"crosscheck": {
"gender": {
"man": 3.271,
"woman": 0.012
},
"darkWeb": null,
"address": {
"errors": [],
"warnings": [],
"isMatch": true,
"isValid": true,
"name": "John E Baird",
"ageRange": null,
"type": "multi-unit",
"isForwarder": false,
"isCommercial": false
},
"email": {
"errors": [
{
"type": "NameMatchError",
"message": "Name match score is below the threshold (0.9)"
}
],
"warnings": [],
"isMatch": false,
"isValid": true,
"name": null,
"ageRange": null,
"isAutoGenerated": false,
"isDisposable": false,
"daysFirstSeen": 992
},
"phone": {
"errors": [],
"warnings": [],
"isMatch": true,
"isValid": true,
"name": "Mr. John M Baird",
"ageRange": null,
"carrier": "AT&T",
"type": "mobile",
"isPrepaid": false,
"isDisposable": false,
"isCommercial": true
},
"ageRange": {
"to": 50,
"from": 48
},
"confidences": {
"identity": 0.51,
"activity": 0.058,
"darkweb": null
}
},
"gender": {
"gender": "man",
"genderDistribution": {
"woman": null,
"man": 3.282
}
},
"aamva": {
"enabled": false,
"hasErrors": false,
"hasWarnings": false,
"createdAt": null,
"updatedAt": "2022-05-01T22:59:47+00:00",
"status": "Not Applicable",
"statusMessage": "AAMVA is not enabled for this account",
"completedAt": null,
"confidenceScore": null
},
"unverifiedIdAddress": [
"253 Clinton",
"Teaneck , AT 30338-4790",
"US"
],
"barcodeData": {},
"idType": null,
"ipFraudCheck": {
"ipFraud": true,
"count": 20,
"jobIdList": [
"oSYEyNGWr",
"RGK0hb5As",
"d_yUvbME0",
"4yxC7Se44",
"23zQ9ERx69",
"qAW4985e-",
"C15fy7etr",
"GAailTNfqQ",
"fgiR1IZ27",
"KO6WquWZr"
]
},
"clientOutput": {
"theme": null,
"client": null,
"capture": {},
"includeBarcode": false
},
"idAddress": {
"streetNumber": "253",
"street": "Clinton",
"city": "Teaneck",
"state": "NY",
"country": "US",
"postalCode": "34232",
"postalCodeSuffix": "3463"
},
"geoLocation: {
longtitude: 38.8951,
latitude: -77.0364,
error: null
},
"type": "drivers-license",
"hasPDF417Back": true,
"hasPDF417Front": null,
"captureBackId": null,
"country": "US",
"state": "NY",
"confidences": {
"id": 1,
"idQuality": 0.9015,
"idExpired": 1,
"idGlareQuality": 1,
"idCrosscheckDarkweb": null,
"idCrosscheckIdentity": null,
"idCrosscheckActivity": null,
"birthDateMatch": null,
"nameMatch": 0.989,
"selfie": null,
"selfieSunglasses": null,
"selfieEyeglasses": null,
"idMatch": 0.989,
"faceMatch": null,
"barcode": null,
"barcodeMatch": null,
"idAml": null
},
"success": true,
"successWithSuggestion": true,
"warnings": false,
"featuresEnabled": {
"aamvaEnabled": false,
"aamvaBillable": false,
"crosscheckEnabled": false,
"crosscheckBillable": false,
"darkwebEnabled": false,
"darkwebBillable": false,
"idvBillable": true,
"physicalAddressBillable": true,
"ipAddressBillable": true,
"faceMatchEnabled": false,
"faceMatchBillable": false
}
},
"errors": [],
"signals": [
{
"category": "id",
"message": "Device Info: Macintosh",
"type": "deviceInfo",
"fields": [],
"property": "private"
}
]
}
Detailed explanation for each field can be found by clicking the 200 Provide Results on Jobs. under the Find Jobs page.
Approved/Rejected properties
In the above JSON response, the main field to check whether a job approved or rejected is result.success
. This boolean field indicates Approved when True or Rejected when False.
Approved jobs can still have warnings we recommend checking. The field result.warnings
is a boolean that indicates whether there are warnings on the job. If there are warnings, the field result.error
can be checked to understand what warnings exactly.
Common warnings are: data-checks/crosscheck error, expired document, DLV error, and AML error.
Validating Webhook Responses
All webhook requests contain X-Signature
in request headers. The X-Signature
is base64 encoded, created using HMAC-SHA1
using your private key as the key and using the response as data. To validate the webhook response, perform the same signature procedure and confirm that your generated signature matches the sent signature.
If your account uses the signature key, the
X-Signature
is base64 encoded, created usingHMAC-SHA1
with your signature key instead of the private key.
Here is an example of validation from our Node.js sample repo.
Whitelisting
Please ensure the following IPs are whitelisted in order to receive webhook responses:
34.83.180.255
35.197.15.224
Updated 11 months ago