Employment Verification
Employer Domain Verification w/o OTP
Overview:
Businesses can verify a candidate or customer's employment from their work email address alone, without collecting an offer letter, payslip or HR confirmation. Decentro checks the email domain's registration record, resolves the companies associated with that domain, and returns risk signals on the inbox itself..
How It Works :
- Domain check — looks up the domain's registration date and age.
- Company resolution — returns the companies registered against that domain, each with its CIN.
- Inbox signals — flags disposable providers, public providers and randomly generated usernames.
Sample Request and Response Body
{
"reference_id": "string",
"consent": true,
"purpose": "To perform KYC of the individual",
"email": "string",
"employer_name": "string"
}
{
"decentroTxnId": "3D03FE7181C34E92ACDFD249A79ED618",
"status": "SUCCESS",
"responseCode": "S00000",
"message": "The email address was verified successfully.",
"data": {
"domainRegistrationDate": "2018-01-10",
"domainAgeInDays": 2576,
"isDisposable": false,
"isPublic": false,
"companyDetails": [
{
"company": "ABCD FIRST BANK LIMITED",
"cin": "L65110TN2014PLC012345"
}
],
"account": {
"username": "John.Doe",
"isGibberish": false
}
},
"responseKey": "success_employment_email_verification"
}
{
"decentroTxnId": "XXXXXXXXXXXXX",
"status": "FAILURE",
"responseCode": "S00000",
"message": "The email address was verified successfully",
"data": {
"isDisposable": true,
"account": {
"username": "XXXXXXXXXXXXX",
"isGibberish": true
}
},
"responseKey": "success_disposable_email_found"
}
{
"decentroTxnId": "96626A356A934A459846D576ECE6CEC9",
"status": "SUCCESS",
"responseCode": "S00000",
"message": "No record was found for the specified email address.",
"data": {
"domainRegistrationDate": "Not Available",
"domainAgeInDays": -1,
"isDisposable": false,
"isPublic": false,
"companyDetails": [],
"account": {
"username": "abhi",
"isGibberish": false
},
"companySearchFailed": false
},
"responseKey": "error_no_record_found"
}
{
"decentroTxnId": "47D8C3D3538C4B83992C022CC0273E8A",
"status": "FAILURE",
"responseCode": "E00009",
"message": "Unsanitized values detected for key(s): employer_name. Allowed special characters are: . - / ( ) ' ’ # , &.",
"responseKey": "error_unsanitized_values"
}
{
"decentroTxnId": "227627477EB947D6979CF799B4AEE6E8",
"status": "SUCCESS",
"responseCode": "S00000",
"message": "The email address was verified successfully.",
"data": {
"domainRegistrationDate": "2000-01-01",
"domainAgeInDays": 9777,
"isDisposable": false,
"isPublic": false,
"companyDetails": [
{
"company": "EXAMPLE HEALTHCARE SOLUTIONS PRIVATE LIMITED",
"cin": "U24290DL2016PTC300001",
"reportedContactDomain": "examplehealth.com",
"inputDomainStringMatch": 40,
"inputDomainPhoneticMatch": 50
},
{
"company": "EXAMPLE TECHNOLOGIES PRIVATE LIMITED",
"cin": "U74140DL2015PTC300002",
"reportedContactDomain": "examplehealth.com",
"inputDomainStringMatch": 40,
"inputDomainPhoneticMatch": 50
},
{
"company": "EXAMPLE ADVANCED SYSTEMS LIMITED",
"cin": "U72900TG2006PLC300003",
"reportedContactDomain": "example.com",
"inputDomainStringMatch": 100,
"inputDomainPhoneticMatch": 100
},
{
"company": "EXAMPLE LIFE INSURANCE COMPANY LIMITED",
"cin": "U66010MH2000PLC300004",
"reportedContactDomain": "examplelife.com",
"inputDomainStringMatch": 84,
"inputDomainPhoneticMatch": 100
},
{
"company": "EXAMPLE GENERAL INSURANCE COMPANY LIMITED",
"cin": "U85110MH2000PLC300005",
"reportedContactDomain": "examplegeneral.com",
"inputDomainStringMatch": 84,
"inputDomainPhoneticMatch": 89
},
{
"company": "EXAMPLE ASSET MANAGEMENT PRIVATE LIMITED",
"cin": "U65990MH1994PTC300006",
"reportedContactDomain": "exampleamc.com",
"inputDomainStringMatch": 84,
"inputDomainPhoneticMatch": 80
},
{
"company": "EXAMPLE AUTOCOMP GREEN ENERGY SOLUTIONS PRIVATE LIMITED",
"cin": "U29304PN2020PTC300007",
"reportedContactDomain": "exampleautocomp.com",
"inputDomainStringMatch": 67,
"inputDomainPhoneticMatch": 67
},
{
"company": "EXAMPLE AUTOCOMP EXHAUST SYSTEMS PRIVATE LIMITED",
"cin": "U35900PN2009PTC300008",
"reportedContactDomain": "exampleexhaust.com",
"inputDomainStringMatch": 64,
"inputDomainPhoneticMatch": 67
}
],
"account": {
"username": "sample",
"isGibberish": false
}
},
"responseKey": "success_employment_email_verification"
}
Request Mapping Table
| Key | Type | Required | Meaning |
|---|---|---|---|
reference_id | String | Yes | Unique identifier for the transaction |
consent | Boolean | Yes | true or false based on the consent given by the customer. Mandatory as per regulation. |
purpose | String | Yes | The purpose of taking this consent from your customer. |
email | String | Yes | The email address of the individual whose employment details need to be verified |
employer_name | String | No | The name of the employer the individual has claimed. Only limited special characters are allowed in employer_name . - / ( ) ' ’ # , & |
Response Mapping Table
| Key | Description |
|---|---|
decentroTxnId | Unique identifier for the transaction |
status | Status of the verification process |
responseCode | Response code indicating the result of the request |
message | Message providing additional information about the response |
responseKey | Key indicating the type of response. See |
data | Container holding the verification result |
data.domainRegistrationDate | Date the email domain was registered, in YYYY-MM-DD. Returns Not Available when unknown. |
data.domainAgeInDays | Age of the domain in days. Returns -1 when unknown. |
data.isDisposable | Whether the email address belongs to a disposable (temporary) email provider |
data.isPublic | Whether the email address belongs to a public email provider |
data.companyDetails | Companies registered against the email domain. Empty when none are found. |
data.companyDetails[].company | Registered name of the company |
data.companyDetails[].cin | Corporate Identification Number of the company |
data.companyDetails[].reportedContactDomain | Contact domain on record for the company. Returned only when employer_name is sent. |
data.companyDetails[].inputDomainStringMatch | String match percentage against employer_name. Returned only when employer_name is sent. |
data.companyDetails[].inputDomainPhoneticMatch | Phonetic match percentage against employer_name. Returned only when employer_name is sent. |
data.account | Details of the account portion of the email address |
data.account.username | The username, that is the part before the @ |
data.account.isGibberish | Whether the username appears to be randomly generated |
data.companySearchFailed | Whether the company lookup failed, as opposed to completing and finding nothing |
Use Cases:
- Employment verification without documents — confirm where someone works from their email address, with no offer letter or HR follow-up.
- Fraud prevention — disposable domains and gibberish usernames surface addresses created solely to pass a check.
- Data enrichment — append the company name and CIN to a customer profile from the email address alone.
- Claim validation — compare the employer a candidate has declared against the companies actually registered on their email domain.
Benefits:
- Accuracy: Real-time verification ensures accurate results.
- Efficiency: Streamline operations with quick and reliable email validation.
- Insightful Data: Gain valuable insights into companies and accounts associated with email addresses.
Get Started:
Check out our API Reference and start leveraging the Employer Domain Verification Service today to enhance data quality, improve security, and streamline processes.
Updated 17 days ago
Did this page help you?
