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

KeyTypeRequiredMeaning
reference_idStringYesUnique identifier for the transaction
consentBooleanYestrue or false based on the consent given by the customer. Mandatory as per regulation.
purposeStringYesThe purpose of taking this consent from your customer.
emailStringYesThe email address of the individual whose employment details need to be verified
employer_nameStringNoThe name of the employer the individual has claimed. Only limited special characters are allowed in employer_name . - / ( ) ' ’ # , &

Response Mapping Table

KeyDescription
decentroTxnIdUnique identifier for the transaction
statusStatus of the verification process
responseCodeResponse code indicating the result of the request
messageMessage providing additional information about the response
responseKeyKey indicating the type of response. See
dataContainer holding the verification result
data.domainRegistrationDateDate the email domain was registered, in YYYY-MM-DD. Returns Not Available when unknown.
data.domainAgeInDaysAge of the domain in days. Returns -1 when unknown.
data.isDisposableWhether the email address belongs to a disposable (temporary) email provider
data.isPublicWhether the email address belongs to a public email provider
data.companyDetailsCompanies registered against the email domain. Empty when none are found.
data.companyDetails[].companyRegistered name of the company
data.companyDetails[].cinCorporate Identification Number of the company
data.companyDetails[].reportedContactDomainContact domain on record for the company. Returned only when employer_name is sent.
data.companyDetails[].inputDomainStringMatchString match percentage against employer_name. Returned only when employer_name is sent.
data.companyDetails[].inputDomainPhoneticMatchPhonetic match percentage against employer_name. Returned only when employer_name is sent.
data.accountDetails of the account portion of the email address
data.account.usernameThe username, that is the part before the @
data.account.isGibberishWhether the username appears to be randomly generated
data.companySearchFailedWhether 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.


Did this page help you?