First Post Response

The Step 1 response contains the identity resolution verdict, a flat array of trust signals (details), and when the decision is Challenge, a populated kba.questionnaire object.

📘

Details array structure

The details array is a flat list of key/value pairs. Most dimensions (phone, email, address, SSN, DOB) expose four signals — Insights, Verification, Affiliation, and Trust — plus a matching *Reason key for each (except Trust). All values are Y or N. See the "Details keys" table below for the full reference.

Top-level response

FieldTypeDescription
transactionIdstring (UUID)Unique identifier for this request.
correlationIdstring (UUID)Must be echoed back in Step 2. Links the two calls into a single authentication session.
referenceTransactionIdstring (UUID)Internal reference transaction.
decisionstringOne of Approve, Challenge, Review, Deny. Challenge means questionnaire was generated.
timestampstringServer timestamp when decision was rendered.
detailsarrayTrust signals across all identity dimensions. See "Details keys" below.
kbaobjectQuestionnaire container. See "KBA object" below.
originalTransactionIdstring (UUID)Original transaction ID for this session.
databaseQueryInfoarrayDiagnostic info. Empty for standard requests.
searchCriteriaarrayEcho of resolved search criteria. Empty for standard requests.
totalRequestExecutionTimeMsintegerServer-side execution time in milliseconds.
requestIdstring (UUID)Unique identifier for this API request.
requestTypestringEcho: "KBA IDV".
requestTimestring (ISO 8601)Server timestamp with timezone offset.
isErrorbooleanTrue if a fatal error occurred.
errorobjectError container. inputErrors and warnings are empty on success.

KBA object

FieldTypeDescription
authenticationIdstring (UUID)Must be echoed back in Step 2. Identifies the questionnaire session.
questionnaireobject | nullQuestionnaire payload when decision is Challenge; null otherwise.

questionnaire

FieldTypeDescription
questionnaireIdintegerIdentifier for this questionnaire version. Pass back on Step 2.
questionGroupsarrayGrouping metadata: which question IDs belong to which logical group (e.g., ADDRESS).
questionsarrayQuestions to present to the user. Typically 3 questions.

Question

FieldTypeDescription
questionIdintegerIdentifier for this question. Echo on Step 2 as QuestionId.
questionTextstringThe prompt to display to the user.
choiceType.typestringAlways SINGLE_CHOICE in the current version.
choicesarrayMultiple-choice options. Always includes a "NONE OF THE ABOVE" option.

Choice

FieldTypeDescription
choiceIdintegerIdentifier to submit as the Answer value on Step 2.
choiceTextstringDisplay text for this option.

Details keys

Each dimension exposes up to four signal keys plus a reason key for each. All signal values are Y or N.

DimensionSignal keysReason keys
Top-levelidentityVerificationDecision
PhonephoneInsights, phoneVerification, phoneAffiliation, phoneTrustphoneInsightsReason, phoneVerificationReason, phoneAffiliationReason
EmailemailInsights, emailVerification, emailAffiliation, emailTrustemailInsightsReason, emailVerificationReason, emailAffiliationReason
AddressaddressInsights, addressVerification, addressAffiliation, addressTrustaddressInsightsReason, addressVerificationReason, addressAffiliationReason
IdentityidentityVerification, identityResolution, identityRisk, identityTrustidentityVerificationReason, identityResolutionReason, identityRiskReason
SSNSSNInsights, SSNVerification, SSNAffiliation, SSNTrustSSNInsightsReason, SSNVerificationReason, SSNAffiliationReason
DOBdobInsights, dobVerification, dobAffiliation, dobTrustdobInsightsReason, dobVerificationReason, dobAffiliationReason
DevicedeviceReputation, deviceAssociation, deviceTrustdeviceReputationReason, deviceAssociationReason

Common reason values

ReasonMeaning
NoInsightsReturnedNo insights available for this dimension.
UnverifiableSignal could not be verified against source data.
AffiliationNotConfirmedSubject-to-attribute link not confirmed.
addressValidAddress exists and is deliverable.
addressNameFullMatchFull name matches the resident of the supplied address.
identityMatchAndAffiliationIdentity resolved and affiliations confirmed.
identityMultipleMatchMultiple candidate identities matched.
identityStrongCorroborationMultiple independent signals corroborate identity.
identityRiskLowRisk indicators below threshold.
Multi-Identity SSN AffiliationSSN is affiliated with more than one identity.
SSN FoundSSN confirmed in source data.
Strong SSN AffiliationHigh-confidence link between subject and SSN.
DOB > 20DOB has been associated with subject for more than 20 years.
DOB VerifiedDOB confirmed in source data.
DOB AffiliatedDOB linked to subject identity.
emailUnknownEmail address not found in source data.

Example response (decision = Challenge)

{
  "transactionId": "1b8753db-6c2c-4223-afa2-0f0f0da81730",
  "correlationId": "5f8d7f10-4975-4557-92b2-b956257a16b9",
  "referenceTransactionId": "820aa35d-0d0a-47c2-aa06-5515bcc3f685",
  "decision": "Challenge",
  "timestamp": "4/23/2026 9:34:18 AM",
  "details": [
    { "key": "identityVerificationDecision", "value": "Approve" },
    { "key": "addressVerification", "value": "Y" },
    { "key": "addressVerificationReason", "value": "addressValid" },
    { "key": "identityTrust", "value": "Y" }
  ],
  "kba": {
    "authenticationId": "2352ace6-9732-4168-b417-a12d4d0d1a1f",
    "questionnaire": {
      "questionnaireId": 1,
      "questionGroups": [
        { "questionGroup": "ADDRESS", "appliesToQuestionId": [1, 2, 3] }
      ],
      "questions": [
        {
          "questionId": 1,
          "questionText": "On which of the following streets have you lived?",
          "choiceType": { "type": "SINGLE_CHOICE" },
          "choices": [
            { "choiceId": 1, "choiceText": "C ST" },
            { "choiceId": 2, "choiceText": "CAMP DR" },
            { "choiceId": 3, "choiceText": "CERES RD" },
            { "choiceId": 4, "choiceText": "CHELSEA" },
            { "choiceId": 5, "choiceText": "NONE OF THE ABOVE" }
          ]
        }
      ]
    }
  },
  "requestType": "KBA IDV",
  "requestTime": "2026-04-23T09:34:19.1920730-07:00",
  "isError": false,
  "error": { "inputErrors": [], "warnings": [] }
}