Validates a national ID number (e.g., Social Security Number) with the provided data
When to use this endpoint
Use this endpoint to validate national ID numbers (such as Social Security Numbers) against official government databases without requiring document uploads or end-user interaction
Common use cases include:
- Validating US Social Security Numbers (SSN) against national databases
- Verifying person data matches government records
- Performing registry-based identity checks for regulatory compliance
- Quick identity validation without document capture
How this endpoint works
- When you call this endpoint:
- A verification session is automatically created and submitted
- The API response returns only the request status and basic session data
- Validation results (person data) are sent via decision webhook
- Media upload is NOT used for registry verification
Default vs sync-api versions
- This is the default /validate-registry endpoint. It uses the standard API URL
https://example-base-url/v1/validate-registryand delivers person data via webhook. - There is also a sync-api /validate-registry version that returns person data directly in the API response payload.
- The sync-api version is not available by default - contact Veriff to enable it see its API documentation for more info.
Required data combinations
To perform SSN validation, you must provide:
idNumber(SSN) - REQUIREDfullNameOR (firstName+lastName) - REQUIRED (one combination)dateOfBirthORaddressdata - REQUIRED (one combination)
If providing
addressdata, send EITHER:fullAddress(full address as single string), ORstreet+houseNumber+postcode(structured address components)
Click on the "Show example" button in the "Body parameters" section to see some example request payloads.
Implementation notes
- Validation results are sent via decision webhook
- Optional fields
phoneNumber,vendorData, andendUserIdare strongly recommended for improved fraud prevention - Always ensure that you use the correct API URL to send requests. See the API URL section for more info
- The order of parameters in the real API response can differ from the order you see in this documentation. This is expected and part of the Backwards compatible changes requirements
Your integration's API key (occasionally referred to as the "Token", "API public key" or "Publishable key"). Required for all API requests.
You can find your API key in the Veriff Customer Portal > Settings > API keys.
Must be application/json
Validates using idNumber + fullName + dateOfBirth.
Note: phoneNumber, vendorData, and endUserId are optional but strongly recommended for
improved fraud prevention.
{
"verification": {
"callback": "https://exampleURL.com/callback",
"person": {
"idNumber": "123456789",
"fullName": "John Smith",
"dateOfBirth": "1980-03-06",
"phoneNumber": "+00 123 456 789"
},
"vendorData": "11111111",
"endUserId": "fa820aba-019f-455a-ae81-cfca8075bc3f"
}
}Validates using idNumber + fullName + fullAddress.
Note: phoneNumber, vendorData, and endUserId are optional but strongly recommended for
improved fraud prevention.
{
"verification": {
"callback": "https://exampleURL.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"
}
}Validates using idNumber + fullName + structured address (street + houseNumber + postcode).
Note: phoneNumber, vendorData, and endUserId are optional but strongly recommended for
improved fraud prevention.
{
"verification": {
"callback": "https://exampleURL.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"
}
}Validates using idNumber + firstName + lastName + dateOfBirth.
Note: phoneNumber, vendorData, and endUserId are optional but strongly recommended for
improved fraud prevention.
{
"verification": {
"callback": "https://exampleURL.com/callback",
"person": {
"idNumber": "123456789",
"firstName": "John",
"lastName": "Smith",
"dateOfBirth": "1980-03-06",
"phoneNumber": "+00 123 456 789"
},
"vendorData": "11111111",
"endUserId": "fa820aba-019f-455a-ae81-cfca8075bc3f"
}
}Validates using idNumber + firstName + lastName + fullAddress.
Note: phoneNumber, vendorData, and endUserId are optional but strongly recommended for
improved fraud prevention.
{
"verification": {
"callback": "https://exampleURL.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"
}
}Validates using idNumber + firstName + lastName + structured address
(street + houseNumber + postcode).
Note: phoneNumber, vendorData, and endUserId are optional but strongly recommended for
improved fraud prevention.
{
"verification": {
"callback": "https://exampleURL.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"
}
}Minimal payload with only required fields.
Warning: Without optional fraud prevention fields (phoneNumber, vendorData, endUserId),
fraud detection may be limited.
{
"verification": {
"person": {
"idNumber": "123456789",
"fullName": "John Smith",
"dateOfBirth": "1980-03-06"
}
}
}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.
Session created successfully
Registry validation session created successfully. The session will be automatically submitted for validation, and results will be sent via decision webhook.
{
"status": "success",
"verification": {
"id": "f8b2c4d6-1a3e-4f9b-8c2d-5e7a9b1c3d4f",
"vendorData": "1234567890",
"status": "created",
"sessionToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzZXNzaW9uX2lkIjoiZjhiMmM0ZDYtMWEzZS00ZjliLThjMmQtNWU3YTliMWMzZDRmIn0..."
}
}API request status.
Verification object.
UUID v4 which identifies the verification session.
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.
Verification session status.
Session-specific token of the verification.
Bad request - missing or invalid required fields
Missing name data - Required field fullName or (firstName + lastName) not provided
{
"status": "failed",
"code": "1102",
"message": "Request person is missing required field fullName or (firstName + lastName)"
}Missing date of birth OR address - Required field dateOfBirth or address not provided
{
"status": "failed",
"code": "1102",
"message": "Request is missing required field 'dateOfBirth' or 'address'"
}Missing address components - 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)"
}Missing ID number - Required field idNumber not provided
{
"status": "failed",
"code": "1102",
"message": "Request is missing required field idNumber"
}Unauthorized - HMAC signature validation failed
{
"status": "failed",
"code": "1812",
"message": "Signature a1b2c3d4e5f6 is not a valid SHA256 hash"
}Changelog
Date | Description |
|---|---|
Mar 9, 2026 | Documentation updated: parent categories rearranged, intro section expanded, request and response examples added |
Oct 2, 2025 |
|
Sep 16, 2025 |
|
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 endpoints |
Apr 30, 2025 | New header |
Mar 12, 2025 | Documentation published |