Skip to main content

VerificationTier

Description

A tiered grouping of the verification evidence Enigma has gathered for a legal entity, alongside the underlying signals that drove the grouping. Each tier corresponds to a level of independence and resistance to manipulation in the evidence: higher tiers require evidence that comes from independent third parties and is harder for an actor to fabricate.

How to act on a given tier — for example, what threshold should gate onboarding or what should trigger manual review — depends on the policy and risk appetite of the consuming application. The per-tier signals are exposed alongside the overall tier so applications can either use the tier directly or compose their own logic on top of the signals.

Tiers

The verification_tier field reflects the strongest tier for which the legal entity has at least one positive signal.

  • **tier_3**: At least one signal that is hard to manipulate and comes from an independent third party is present — for example, a verified open operating location, sustained card-transaction activity with positive revenue over a twelve-month period, a long and dense customer review history across active locations, or a record sourced from a government agency.
  • **tier_2**: Signals that can still be fabricated but require meaningful effort are present — customer reviews across active operating locations or a working website associated with the legal entity's brands.
  • **tier_1**: Only signals that an actor could produce quickly and with little effort are present — corporate registration or an Employer Identification Number (EIN).
  • **none**: Reserved. Not produced in the current implementation: the universe is gated to legal entities with an active registration, so every output row reaches at least Tier 1.
type VerificationTier implements NodeFunctions {
firstObservedDate: String
lastObservedDate: String
verificationTier: String
tier1Signals: JSON
tier2Signals: JSON
tier3Signals: JSON
internalId: String
internalLegalEntityId: String
id: UUID!
count(
field: String!
conditions: Conditions
): Int
countDistinct(
field: String!
conditions: Conditions
): Int
has(
field: String!
conditions: Conditions
): Boolean
sum(
field: String!
conditions: Conditions
): Int
min(
field: String!
conditions: Conditions
): Int
max(
field: String!
conditions: Conditions
): Int
avg(
field: String!
conditions: Conditions
): Float
collect(
field: String!
separator: String
conditions: Conditions
): String
minDateTime(
field: String!
conditions: Conditions
): DateTime
maxDateTime(
field: String!
conditions: Conditions
): DateTime
_fn: JSON
}

Fields

VerificationTier.firstObservedDate ● String scalar

VerificationTier.lastObservedDate ● String scalar

VerificationTier.verificationTier ● String scalar

The strongest tier of evidence Enigma has gathered for the legal entity. One of tier_3, tier_2, tier_1.

VerificationTier.tier1Signals ● JSON scalar

Tier 1 evidence — trust-based signals an actor could produce quickly and with little effort: corporate registration and EIN.

VerificationTier.tier2Signals ● JSON scalar

Tier 2 evidence — signals that can still be fabricated but require meaningful effort: customer reviews at active locations and a working web presence.

VerificationTier.tier3Signals ● JSON scalar

Tier 3 evidence — hard-to-manipulate signals from independent third parties: currently-Open locations, sustained card-transaction activity with positive revenue, a substantial review history at active locations, and association with a government-issued record.

VerificationTier.internalId ● String scalar

VerificationTier.internalLegalEntityId ● String scalar

VerificationTier.id ● UUID! non-null scalar

VerificationTier.count ● Int scalar

VerificationTier.count.field ● String! non-null scalar
VerificationTier.count.conditions ● Conditions input

VerificationTier.countDistinct ● Int scalar

VerificationTier.countDistinct.field ● String! non-null scalar
VerificationTier.countDistinct.conditions ● Conditions input

VerificationTier.has ● Boolean scalar

VerificationTier.has.field ● String! non-null scalar
VerificationTier.has.conditions ● Conditions input

VerificationTier.sum ● Int scalar

VerificationTier.sum.field ● String! non-null scalar
VerificationTier.sum.conditions ● Conditions input

VerificationTier.min ● Int scalar

VerificationTier.min.field ● String! non-null scalar
VerificationTier.min.conditions ● Conditions input

VerificationTier.max ● Int scalar

VerificationTier.max.field ● String! non-null scalar
VerificationTier.max.conditions ● Conditions input

VerificationTier.avg ● Float scalar

VerificationTier.avg.field ● String! non-null scalar
VerificationTier.avg.conditions ● Conditions input

VerificationTier.collect ● String scalar

VerificationTier.collect.field ● String! non-null scalar
VerificationTier.collect.separator ● String scalar
VerificationTier.collect.conditions ● Conditions input

VerificationTier.minDateTime ● DateTime scalar

VerificationTier.minDateTime.field ● String! non-null scalar
VerificationTier.minDateTime.conditions ● Conditions input

VerificationTier.maxDateTime ● DateTime scalar

VerificationTier.maxDateTime.field ● String! non-null scalar
VerificationTier.maxDateTime.conditions ● Conditions input

VerificationTier._fn ● JSON scalar

Interfaces

NodeFunctions interface

Member Of

VerificationTierEdge object