> ## Documentation Index
> Fetch the complete documentation index at: https://docs.go.gbgplc.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Email Insights

> Validate email addresses in GBG GO and surface fraud-related risk signals such as disposable addresses, tumbled addresses, and high-risk domains.

export const VersionWarningBanner = () => {
  const [latestUrl, setLatestUrl] = useState(null);
  useEffect(() => {
    if (typeof window === "undefined") return;
    const {pathname, hash, search} = window.location;
    if (!pathname.includes("/go-v1/")) return;
    setLatestUrl(`${pathname.replace("/go-v1/", "/go-v2/")}${search}${hash}`);
  }, []);
  if (!latestUrl) return null;
  return <div className="not-prose my-6 rounded-xl border border-amber-500/30 bg-amber-500/10 px-4 py-3 text-sm text-gray-800 dark:text-gray-100">
      ⚠️ You are viewing the <strong>GBG GO v1</strong> documentation.
      <a href={latestUrl} className="ml-2 font-medium underline text-amber-700 dark:text-amber-400 hover:text-amber-800 dark:hover:text-amber-300">
        View the latest version (v2) →
      </a>
    </div>;
};

<VersionWarningBanner />

The **Email Insights** module validates email addresses and surfaces fraud-related risk signals. It checks whether an email address is valid and deliverable, and returns risk codes that identify disposable addresses, tumbled addresses, high-risk domains, and other fraud indicators.

The module has three variants:

* A legacy variant that returns a pass/fail result and risk codes.
* A standardised variant that returns structured advice outputs, recommended for new journeys.
* A validation variant that confirms an email address exists, used as a lightweight pre-check.

<div id="accordion-filter-target" />

<AccordionGroup>
  <Accordion title="Global Email Validation and Fraud Insights (Legacy)">
    This variant validates email addresses globally and returns both a pass/fail verification result and detailed risk codes.

    **Required inputs:** Full name, personal email.

    ## Capabilities

    This variant returns an email verification result alongside risk codes that describe the email address and its domain.

    ### Email result

    | Code                            | Label      | Description                                  |
    | ------------------------------- | ---------- | -------------------------------------------- |
    | `expectid.email.verify.success` | Email pass | The email address was successfully verified. |
    | `expectid.email.verify.failure` | Email fail | The email address couldn't be verified.      |

    ### Email risk codes

    | Code                                     | Label                          | Description                                                                                                                 |
    | ---------------------------------------- | ------------------------------ | --------------------------------------------------------------------------------------------------------------------------- |
    | `resultcode.email.domain.does.not.exist` | Email or domain does not exist | The email address or its domain doesn't exist.                                                                              |
    | `resultcode.high.risk.email.fraud`       | High risk email - fraud        | The email address is associated with known fraud activity.                                                                  |
    | `resultcode.high.risk.email.tumbled`     | High risk email - tumbled      | The email address appears to be tumbled, where slight variations of a known address are used to create multiple identities. |
    | `resultcode.high.risk.email.disposable`  | High risk email - disposable   | The email address uses a disposable or temporary email service.                                                             |
    | `resultcode.high.risk.email.domain`      | High risk email - domain       | The email domain is flagged as high risk.                                                                                   |
    | `resultcode.high.risk.email.country`     | High risk email - country      | The email is associated with a high-risk country.                                                                           |
    | `resultcode.private.email.domain`        | Private email domain           | The email uses a private consumer domain such as Gmail or Yahoo.                                                            |
    | `resultcode.corporate.email.domain`      | Corporate email domain         | The email uses a corporate domain.                                                                                          |
    | `resultcode.email.inbox.is.full`         | Email inbox is full            | The email inbox is full.                                                                                                    |
    | `resultcode.email.recently.verified`     | Email recently verified        | The email address was recently verified in a previous check.                                                                |
    | `resultcode.domain.recently.verified`    | Domain recently verified       | The email domain was recently verified in a previous check.                                                                 |
    | `resultcode.invalid.email.address`       | Invalid email address          | The email address format is invalid.                                                                                        |
    | `resultcode.email.no.hit`                | Email - no hit                 | No data was found for the email address.                                                                                    |
    | `resultcode.email.service.not.available` | Email service not available    | The email verification service is unavailable.                                                                              |

    This variant also returns Trust USA risk and result capabilities. These use the same enumset documented under [US: Source 1 (Legacy)](/docs/go-v1/platform/modules/data/data-verification#us-source-1-legacy) on the Data Verification page.

    ## Default outcomes

    | Outcome        | Condition                                             | Description                                                                           |
    | -------------- | ----------------------------------------------------- | ------------------------------------------------------------------------------------- |
    | `Verified`     | Email result includes `expectid.email.verify.success` | The email address was verified.                                                       |
    | `Not Verified` | Email result includes `expectid.email.verify.failure` | The email address couldn't be verified. Check the risk codes for the specific reason. |
    | `ERROR`        | Default (no conditions matched)                       | An unexpected error occurred.                                                         |

    ## Input payload

    The following is a sample payload used to submit subject details to the **Global Email Validation and Fraud Insights (Legacy)** variant for processing.

    ```json JSON theme={null}
    {
      "resourceId": "<resourceId>",
      "context": {
        "subject": {
          "identity": {
            "firstName": "JOHN",
            "lastNames": ["SMITH"],
            "dateOfBirth": "1975-02-28",
            "emails": [
              {
                "type": "email",
                "email": "joe@target.com"
              }
            ],
            "phones": [
              {
                "type": "mobile",
                "number": "9193740211"
              }
            ],
            "currentAddress": {
              "lines": ["222333 PEACHTREE PLACE"],
              "locality": "ATLANTA",
              "dependentLocality": "GA",
              "postalCode": "30318",
              "country": "US"
            }
          }
        }
      }
    }
    ```

    | Field                                       | Required | Description                                       |
    | ------------------------------------------- | -------- | ------------------------------------------------- |
    | `identity.firstName`                        | Yes      | First name of the subject.                        |
    | `identity.lastNames`                        | Yes      | Array containing the last name(s) of the subject. |
    | `identity.emails[].type`                    | Yes      | Type of email address, for example `"email"`.     |
    | `identity.emails[].email`                   | Yes      | Email address of the subject.                     |
    | `identity.dateOfBirth`                      | No       | Date of birth in `YYYY-MM-DD` format.             |
    | `identity.phones[].type`                    | No       | Type of phone number, for example `"mobile"`.     |
    | `identity.phones[].number`                  | No       | Phone number of the subject.                      |
    | `identity.currentAddress.lines`             | No       | Array of address lines.                           |
    | `identity.currentAddress.locality`          | No       | Town or city.                                     |
    | `identity.currentAddress.dependentLocality` | No       | State or region.                                  |
    | `identity.currentAddress.postalCode`        | No       | Postal or ZIP code.                               |
    | `identity.currentAddress.country`           | No       | Country code, for example `"US"`.                 |

    ## Sample response

    The following is a sample response where the email verified but high-risk fraud signals were detected.

    ```json JSON theme={null}
    {
      "response": {
        "advice": {
          "equals": {
            "email_risk_capabilities": [
              "resultcode.high.risk.email.fraud",
              "resultcode.high.risk.email.disposable",
              "resultcode.high.risk.email.domain"
            ],
            "email_result_capabilities": [
              "expectid.email.verify.success"
            ],
            "trust_usa_risk_capabilities": [],
            "trust_usa_result_capabilities": []
          }
        },
        "outcome": "Verified"
      }
    }
    ```
  </Accordion>

  <Accordion title="Global Email Insights">
    This variant validates email addresses globally and returns standardised advice outputs, including an overall fraud risk level, fraud signals, and structured email risk codes. It's recommended for new journeys.

    **Required inputs:** Full name, personal email.

    ## Capabilities

    This variant returns a structured set of advice outputs grouped into execution, fraud, and email checks.

    ### Execution

    | Capability       | Type | Values              | Description                                                                                                                                                                          |
    | ---------------- | ---- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
    | Execution status | Enum | `COMPLETE`, `ERROR` | Execution status for outcome routing. `COMPLETE` is a successful provider response. `ERROR` is any service failure, such as invalid credentials or a service-not-available response. |

    ### Fraud

    | Capability          | Type    | Values                                                | Description                                                                                                 |
    | ------------------- | ------- | ----------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
    | Fraud risk          | Enum    | `VERY_LOW`, `LOW`, `MEDIUM`, `HIGH`, `VERY_HIGH`      | Overall fraud risk level for the email. An empty value means no fraud risk was provided by the data source. |
    | Fraud risk score    | Integer | 0 or greater                                          | Fraud risk score for the email.                                                                             |
    | Email fraud type    | Enum    | `FRAUD`, `TUMBLED`, `DISPOSABLE`, `DOMAIN`, `COUNTRY` | Type of fraud risk associated with the email. An empty value means no specific fraud type was detected.     |
    | Email fraud signals | Enumset | `FRAUD`, `TUMBLED`, `DISPOSABLE`, `DOMAIN`, `COUNTRY` | All high-risk fraud signals present in the response.                                                        |

    ### Email and domain

    | Capability           | Type    | Values                          | Description                                                                                                                |
    | -------------------- | ------- | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
    | Email exists         | Boolean | `true`, `false`                 | Whether the email address exists.                                                                                          |
    | Domain exists        | Boolean | `true`, `false`                 | Whether the domain exists.                                                                                                 |
    | Domain country code  | Enum    | ISO 3166-1 alpha-2 country code | Country of the email domain, for example `US`, `GB`, or `DE`. An empty value means the country is unknown or not provided. |
    | Days email verified  | Integer | 0 or greater                    | Number of days the email has been verified for.                                                                            |
    | Days domain verified | Integer | 0 or greater                    | Number of days the domain has been verified for.                                                                           |
    | Email total hits     | Integer | 0 or greater                    | Total number of hits for the email.                                                                                        |
    | Email unique hits    | Integer | 0 or greater                    | Number of unique hits for the email.                                                                                       |

    ### Email risks

    This enumset returns zero or more of the following risk codes.

    | Code                                     | Label                          | Description                                                      |
    | ---------------------------------------- | ------------------------------ | ---------------------------------------------------------------- |
    | `resultcode.email.domain.does.not.exist` | Email or domain does not exist | The email address or its domain doesn't exist.                   |
    | `resultcode.private.email.domain`        | Private email domain           | The email uses a private consumer domain such as Gmail or Yahoo. |
    | `resultcode.corporate.email.domain`      | Corporate email domain         | The email uses a corporate or business domain.                   |
    | `resultcode.email.inbox.is.full`         | Email inbox is full            | The mailbox storage is full, so delivery might fail.             |
    | `resultcode.email.recently.verified`     | Email recently verified        | The email address was recently verified by the provider.         |
    | `resultcode.domain.recently.verified`    | Domain recently verified       | The domain was recently verified by the provider.                |
    | `resultcode.invalid.email.address`       | Invalid email address          | The address is syntactically invalid or not recognised.          |
    | `resultcode.email.no.hit`                | Email - no hit                 | No records were found for the email address.                     |
    | `resultcode.email.service.not.available` | Email service not available    | The provider email service was unavailable during the request.   |

    ## Default outcomes

    | Outcome        | Condition                                                                                                                                                                                                                                                           | Description                                                                                |
    | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
    | `Error`        | Execution status is `ERROR`, or email risks includes `resultcode.email.service.not.available`                                                                                                                                                                       | The email verification service failed.                                                     |
    | `Verified`     | Email exists is `true` and domain exists is `true` and email fraud type is not `FRAUD`, `TUMBLED`, `DISPOSABLE`, `DOMAIN`, or `COUNTRY` and fraud risk is not `HIGH` or `VERY_HIGH` and email risks excludes service-not-available, invalid, inbox-full, and no-hit | The email address exists, the domain exists, and no high-risk fraud signals were detected. |
    | `Not Verified` | Default (no conditions matched)                                                                                                                                                                                                                                     | The email address couldn't be verified, or a fraud signal was detected.                    |

    ## Input payload

    The following is a sample payload used to submit subject details to the **Global Email Insights** variant for processing.

    ```json JSON theme={null}
    {
      "resourceId": "<resourceId>",
      "context": {
        "subject": {
          "identity": {
            "firstName": "JOHN",
            "lastNames": ["SMITH"],
            "dateOfBirth": "1975-02-28",
            "emails": [
              {
                "type": "email",
                "email": "joe@target.com"
              }
            ],
            "phones": [
              {
                "type": "mobile",
                "number": "9193740211"
              }
            ],
            "currentAddress": {
              "lines": ["222333 PEACHTREE PLACE"],
              "locality": "ATLANTA",
              "dependentLocality": "GA",
              "postalCode": "30318",
              "country": "US"
            }
          }
        }
      }
    }
    ```

    | Field                                       | Required | Description                                       |
    | ------------------------------------------- | -------- | ------------------------------------------------- |
    | `identity.firstName`                        | Yes      | First name of the subject.                        |
    | `identity.lastNames`                        | Yes      | Array containing the last name(s) of the subject. |
    | `identity.emails[].type`                    | Yes      | Type of email address, for example `"email"`.     |
    | `identity.emails[].email`                   | Yes      | Email address of the subject.                     |
    | `identity.dateOfBirth`                      | No       | Date of birth in `YYYY-MM-DD` format.             |
    | `identity.phones[].type`                    | No       | Type of phone number, for example `"mobile"`.     |
    | `identity.phones[].number`                  | No       | Phone number of the subject.                      |
    | `identity.currentAddress.lines`             | No       | Array of address lines.                           |
    | `identity.currentAddress.locality`          | No       | Town or city.                                     |
    | `identity.currentAddress.dependentLocality` | No       | State or region.                                  |
    | `identity.currentAddress.postalCode`        | No       | Postal or ZIP code.                               |
    | `identity.currentAddress.country`           | No       | Country code, for example `"US"`.                 |

    ## Sample response

    The following is a sample response where a very high fraud risk returned a `Not Verified` outcome.

    ```json JSON theme={null}
    {
      "response": {
        "advice": {
          "contains": {
            "domain_country_code": "US",
            "fraud_risk": "VERY_HIGH",
            "fraud_risk_score": 930,
            "email_fraud_type": "FRAUD",
            "email_fraud_signals": [
              "FRAUD",
              "DISPOSABLE",
              "DOMAIN"
            ],
            "email_risks": [],
            "email_exists": true,
            "domain_exists": true,
            "email_total_hits": 29,
            "email_unique_hits": 1
          }
        },
        "outcome": "Not Verified"
      }
    }
    ```
  </Accordion>

  <Accordion title="Global Email Validation">
    This variant confirms that an email address exists. Use it as a lightweight pre-check before running the email insight variants.

    **Required inputs:** Personal email.

    ## Capabilities

    This variant returns a single capability: a generic email match result.

    ### Generic email match result

    This capability indicates whether the email address matched.

    | Value                | Description                                               |
    | -------------------- | --------------------------------------------------------- |
    | `match`              | The email address matched.                                |
    | `mismatch`           | The email address didn't match.                           |
    | `not available`      | No match data was available.                              |
    | `unrecognised value` | The service returned a value that couldn't be recognised. |
    | `no result`          | No result was returned for the email address.             |

    ## Default outcomes

    | Outcome            | Condition                        | Description                            |
    | ------------------ | -------------------------------- | -------------------------------------- |
    | `Email Valid`      | Email match result is `match`    | The email address exists.              |
    | `Email Invalid`    | Email match result is `mismatch` | The email address doesn't exist.       |
    | `Could Not Locate` | Default (no conditions matched)  | The email address couldn't be located. |

    ## Input payload

    The following is a sample payload used to submit an email address to the **Global Email Validation** variant for processing. This variant needs only a personal email address.

    ```json JSON theme={null}
    {
      "resourceId": "<resourceId>",
      "context": {
        "subject": {
          "identity": {
            "emails": [
              {
                "type": "other",
                "email": "full.match@outlook.com"
              }
            ]
          }
        }
      }
    }
    ```

    | Field                     | Required | Description                                   |
    | ------------------------- | -------- | --------------------------------------------- |
    | `identity.emails[].type`  | Yes      | Type of email address, for example `"other"`. |
    | `identity.emails[].email` | Yes      | Email address of the subject.                 |

    ## Sample response

    The following is a sample response for a valid email address.

    ```json JSON theme={null}
    {
      "response": {
        "advice": {
          "contains": {}
        },
        "outcome": "Email Valid"
      }
    }
    ```
  </Accordion>
</AccordionGroup>
