Validates a national ID number (e.g. social security number (SSN)) with the provided data
You will need a separate integration to do this verification, ask your Solutions Engineer to set it up.
A verification session will be automatically created and submitted. After that, the validation result is sent in API response payload. Media upload is not used for registry verification.
In order to perform a social security number (SSN) validation the following fields must be provided:
idNumberfullnameORfirstName+lastNamedateofBirthORaddressdata- If
addressdata is provided, then send EITHERfullAddressvalue OR thestreet+houseNumber+postcodevalues
- If
Additional info
This is one of the two endpoints used to to SSN validation, hereinafter “sync-api /validate-registry”. This endpoint is not available by default!
The default endpoint for SSN validation is POST /v1/validate-registry (hereinafter “default /validate-registry").
The difference between the default /validate-registry and sync-api /validate-registry is that default /validate-registry returns the data about person and/or document via webhook, but sync-api /validate-registry returns the data inside the API response payload.
If you need to use the “sync-api /validate-registry” endpoint, contact your Solutions Engineer or Veriff Customer Support, who can help set it up for you. When using this endpoint, make sure to use the API URL //sync-api.veriff.me/v1/validate-registry.
See the API FAQ section for more info.
Note: always ensure that you use the correct API URL to send requests. See the API URL section for more info.
Your integration's API key. Required to identify the request sender. Occasionally referred to as the "API token".
Your integration's API key.
Request body signed with the shared secret key. Required to authenticate the request sender.
idNumber + fullName + dateOfBirth.
Note that phoneNumber, vendorData, and endUserId are optional but strongly recommended for improved fraud prevention.
{
"verification": {
"callback": "https://example.com/callback",
"person": {
"idNumber": 123456789,
"fullName": "John Smith",
"dateOfBirth": "1980-03-06T00:00:00Z",
"phoneNumber": "+00 123 456 789"
},
"vendorData": 11111111,
"endUserId": "fa820aba-019f-455a-ae81-cfca8075bc3f"
}
}idNumber + fullName + fullAddress.
Note that phoneNumber, vendorData, and endUserId are optional but strongly recommended for improved fraud prevention.
{
"verification": {
"callback": "https://example.com/callback",
"person": {
"idNumber": 123456789,
"fullName": "John Smith",
"phoneNumber": "+00 123 456 789"
},
"address": {
"fullAddress": "3, 123, Main Street, My County, Anytown, 12345"
},
"vendorData": 11111111,
"endUserId": "fa820aba-019f-455a-ae81-cfca8075bc3f"
}
}idNumber + fullName + structured address (street + houseNumber + postcode).
Note that phoneNumber, vendorData, and endUserId are optional but strongly recommended for improved fraud prevention.
{
"verification": {
"callback": "https://example.com/callback",
"person": {
"idNumber": 123456789,
"fullName": "John Smith",
"phoneNumber": "+00 123 456 789"
},
"address": {
"street": "Main Street",
"houseNumber": 123,
"postcode": 12345
},
"vendorData": 11111111,
"endUserId": "fa820aba-019f-455a-ae81-cfca8075bc3f"
}
}idNumber + firstName + lastName + dateOfBirth.
Note that phoneNumber, vendorData, and endUserId are optional but strongly recommended for improved fraud prevention.
{
"verification": {
"callback": "https://example.com/callback",
"person": {
"idNumber": 123456789,
"firstName": "John",
"lastName": "Smith",
"dateOfBirth": "1980-03-06T00:00:00Z",
"phoneNumber": "+00 123 456 789"
},
"vendorData": 11111111,
"endUserId": "fa820aba-019f-455a-ae81-cfca8075bc3f"
}
}idNumber + firstName + lastName + fullAddress.
Note that phoneNumber, vendorData, and endUserId are optional but strongly recommended for improved fraud prevention.
{
"verification": {
"callback": "https://example.com/callback",
"person": {
"idNumber": 123456789,
"firstName": "John",
"lastName": "Smith",
"phoneNumber": "+00 123 456 789"
},
"address": {
"fullAddress": "3, 123, Main Street, My County, Anytown, 12345"
},
"vendorData": 11111111,
"endUserId": "fa820aba-019f-455a-ae81-cfca8075bc3f"
}
}idNumber + firstName + lastName + structured address (street + houseNumber + postcode).
Note that phoneNumber, vendorData, and endUserId are optional but strongly recommended for improved fraud prevention.
{
"verification": {
"callback": "https://example.com/callback",
"person": {
"idNumber": 123456789,
"firstName": "John",
"lastName": "Smith",
"phoneNumber": "+00 123 456 789"
},
"address": {
"street": "Main Street",
"houseNumber": 123,
"postcode": 12345
},
"vendorData": 11111111,
"endUserId": "fa820aba-019f-455a-ae81-cfca8075bc3f"
}
}Verification object
The callback URL to where the end-user is redirected after the verification session is completed. Default is visible in the Veriff Customer Portal > Settings. Changing the value in this request body will overwrite the default callback URL, but it will not change the callback URL that is visible in the Customer Portal.
Data about the person being verified
Person's national ID number (SSN)
Person's first name. Required if fullName is not provided
Person's last name. Required if fullName is not provided
Person's full name. Required if firstName + lastName is not provided
Person's phone number, can include numbers, whitespaces and the "+" sign in front
Person's date of birth. Required if address is not provided
Data about the address of the person being verified
Full address. Required if street + houseNumber + postcode are not provided
Street name. Required if fullAddress is not provided
House number. Required if fullAddress is not provided
Postal code. Required if fullAddress is not provided
Any human settlement, including cities, towns, villages, hamlets, localities, etc.
A first-level administrative division. For example, Scotland, Northern Ireland, Wales, and England in the UK are mapped to "state" as well (convention used in OSM, GeoPlanet, etc.)
An apartment, unit, office, lot, or other secondary unit designator
The unique identifier that you created for your end-user. It can be max 1,000 characters long and contain only non-semantic data that can not be resolved or used outside your systems or environments. Veriff returns it unmodified in webhooks and API response payloads, or as null if not provided.
End-user-specific UUID created by the customer to identify the end-user. Returned unmodified in webhooks and public API calls, or as null if not provided
Successful response
{
"status": "success",
"verification": {
"id": "09551b48-4d7c-4a30-8437-5301223953fa",
"code": 9001,
"status": "approved",
"person": {
"firstName": "JOHN",
"lastName": "SMITH",
"idNumber": "123456789",
"dateOfBirth": "1980-03-06",
"yearOfBirth": "1980",
"placeOfBirth": "ANYTOWN",
"addresses": [
{
"fullAddress": "3, 123, Main Street, My County, Anytown, 12345"
}
]
},
"reason": null,
"reasonCode": null,
"comments": [],
"document": {
"type": null,
"number": null,
"country": null,
"validFrom": null,
"validUntil": null
},
"vendorData": null,
"endUserId": "fa820aba-019f-455a-ae81-cfca8075bc3f",
"decisionTime": "2023-11-06T07:18:36.916Z",
"acceptanceTime": "2023-11-06T07:15:27Z",
"additionalVerifiedData": {
"failedValidation": null
}
},
"technicalData": {
"ip": null
}
}Status of the response
Verification request decision object. null if decision is not available yet
UUID v4 which identifies the verification session
Verification response code
Verification session status
Verified person
Person's first name
Person's last name
National identification number
Person's date of birth. YYYY-MM-DD
Person's year of birth. YYYY
Person's place of birth
Address data from the document as array of strings
Address as single string
Reason of failed verification
Reason code of failed verification
Verified document
Document type. Always returns null
Document number. Always returns null
ISO-2 Document country. Always returns null
Document is valid from date. Always returns null
Document is valid until date. Always returns null
Unique identifier created by the customer to identify the end-user. Returned unmodified in webhooks and public API calls, or as null if not provided
End-user-specific UUID created by the customer to identify the end-user. Returned unmodified in webhooks and public API calls, or as null if not provided
Timestamp of the decision. Combined ISO 8601 date and time in UTC YYYY-MM-DDTHH:MM:SSS+Timezone Offset
Timestamp of the session generation. Combined ISO 8601 date and time in UTC YYYY-MM-DDTHH:MM:SSS+Timezone Offset
Data which has been optionally verified for session
Message for the failed validation
Technical data object
IP of the device from which the verification was made
Required field fullAddress or (street + houseNumber + postcode) not provided
{
"status": "failed",
"code": "1102",
"message": "Request address is missing required field fullAddress or (street + houseNumber + postcode)"
}Status of the request
Status code
Explanation why the verification failed
Required field dateOfBirth or address not provided
{
"status": "failed",
"code": "1102",
"message": "Request is missing required field 'dateOfBirth' or 'address'"
}Status of the request
Status code
Explanation why the verification failed
Required field idNumber not provided
{
"status": "failed",
"code": "1102",
"message": "Request is missing required field idNumber"
}Status of the request
Status code
Explanation why the verification failed
Required field fullName or (firstName + lastName) not provided
{
"status": "failed",
"code": "1102",
"message": "Request person is missing required field fullName or (firstName + lastName)"
}Status of the request
Status code
Explanation why the verification failed
X-HMAC-SIGNATURE validation failed
Status of the request
Status code
Explanation why the verification failed
Changelog
| Date | Description |
| Jan 8, 2026 | Request and response payload examples added |
| Oct 2, 2025 | vrf- headers removed from response |
| Sep 17, 2025 | vrf-auth-client and vrf-hmac-signature headers removed from response |
| Sep 16, 2025 | vrf-integration-id header removed from requestHeader names changed to lower case |
| Aug 6, 2025 | Response headers added |
| Jul 11, 2025 | Endpoint description updated to clarify the difference between /v1/validate-registry and sync-api/validate registry endpoint |
| May 29, 2025 | Minor updates to format |
| Apr 30, 2025 | New header vrf-integration-id added to support the Flexible API keys solution |
| Apr 3, 2025 | "Required" tags removed from x-hmac-signature and content-type headers |
| Mar 12, 2025 | Documentation published |