Federated Gateway Output

The Federated Gateway produces data in the following format:

{
    "at_hash": "udfkrvnPivU4uE0BYeUcXA",
    "sub": "[email protected]",
    "aud": "18976aa43dca4b4e",
    "endpoint": {
      "status": "success",
      "errorCode": "",
      "errorDescription": "",
      "credential": "[email protected]",
      "credentialCreationDate": "02/08/2022 21:09:35 UTC",
      "mbun": "f3f2a548-6c67-4155-8e30-bb1a28c84647",
      "maxToken": "EnMbLwzgyefV3dndx9d5r1C-iEyZ8PpRhuIeIFlGpIE",
      "endpointInstanceList": [
          //details of each step (api key) in verification workflow
        ]
    },
    "policyDecision": "approve",
    "idwRiskScore": "100",
    "iss": "https://preprod1.iddataweb.com/preprod-axn",
    "idwTrustScore": "100",
    "exp": 1644355218,
    "iat": 1644354618,
    "jti": "008ab766-a58d-4489-b4cd-85188d2562d0"
  }

Notes

  • The 'sub' field is the same value as credential. sub is used in conformance with the OpenID Connect standard.
  • The jti is the same value as asi and transaction_id (used elsewhere.) jti is used in conformance with the OpenID Connect standard.
  • policyDecision is the overall decision after the workflow was complete, as described here.

endpointInstanceList

The endpointInstanceList is an array of JSON objects which describe each step of the verification process. For example - if your verification workflow contains 3 steps, you will see 3 objects in the endpointInstanceList array.

The format of each object in the endpointInstanceList is the following:

{
        "apikey": "12345",
        "userAttributes": [
          //user attributes obtained from user during this step.
        ],
        "preferenceAttributes": [
          //preferences obtained from user (deprecated)
        ],
        "userAssertionList": [
          //Assertion results for each Attribute Provider.
        ],
        "policyDecision": {
          //Details on the decision made about a given user. 
          }
      }

So, an example of a full output may be:

{
  "at_hash": "udfkrvnPivU4uE0BYeUcXA",
  "sub": "[email protected]",
  "aud": "18976aa43dca4b4e",
  "endpoint": {
    "status": "success",
    "errorCode": "",
    "errorDescription": "",
    "credential": "[email protected]",
    "credentialCreationDate": "02/08/2022 21:09:35 UTC",
    "mbun": "f3f2a548-6c67-4155-8e30-bb1a28c84647",
    "maxToken": "EnMbLwzgyefV3dndx9d5r1C-iEyZ8PpRhuIeIFlGpIE",
    "endpointInstanceList": [
      {
        "apikey": "12345",
        "userAttributes": [
          {
            "attributeType": "Country",
            "values": {
              "country": "US"
            },
            "dateCreated": "02/08/2022 21:09:39 UTC"
          }
        ],
        "acquiredAttributes": [
          {
            "attributeType": "DeviceType",
            "values": {
              "deviceType": "desktop"
            },
            "dateCreated": "02/08/2022 21:09:40 UTC"
          }
        ],
        "preferenceAttributes": [],
        "userAssertionList": [],
        "policyDecision": {
          "conclusion": "obligation",
          "obligationApiKey": "55555",
          "status": "success",
          "selectedPolicyID": 20124,
          "decisionDetail": "{}"
        }
      },
      {
        "apikey": "55555",
        "userAttributes": [
          {
            "attributeType": "FullName",
            "values": {
              "fname": "daryl",
              "lname": "johnson"
            },
            "dateCreated": "02/08/2022 21:09:55 UTC"
          },
          {
            "attributeType": "InternationalAddress",
            "values": {
              "country": "US",
              "locality": "Richmond",
              "route": "main Ave",
              "administrative_area_level_1": "VA",
              "street_number": "2358",
              "neighborhood": "The Fan District",
              "postal_code": "23444"
            },
            "dateCreated": "02/08/2022 21:09:55 UTC"
          },
          {
            "attributeType": "InternationalTelephone",
            "values": {
              "dialCode": "1",
              "telephone": "(123) 456-7890"
            },
            "dateCreated": "02/08/2022 21:09:55 UTC"
          }
        ],
        "acquiredAttributes": [
          {
            "attributeType": "AssertionScore",
            "values": {
              "assertionScore": "88"
            },
            "dateCreated": "02/08/2022 21:09:57 UTC"
          }
        ],
        "preferenceAttributes": [],
        "userAssertionList": [
          {
            "provider": "Experian",
            "serviceOffering": "Experian Precise ID",
            "dateAsserted": "02/08/2022 21:09:55 UTC",
            "assertions": {
              "test.fraudulentActivityAddress": "pass",
              "link.fullName_address": "pass",
              "link.lastName_address": "pass",
              "test.noAddressConflicts": "pass",
              "test.address90DaysOld": "pass",
              "test.fileOneAddressMatch": "pass",
              "test.addressIsResidential": "pass",
              "link.lastName_phone": "pass",
              "link.phone_address": "pass"
            }
          },
          {
            "provider": "Boku",
            "serviceOffering": "Boku - International Mobile Carrier Reverse Lookup",
            "dateAsserted": "02/08/2022 21:09:57 UTC",
            "assertions": {
              "link.phone_zip": "pass",
              "test.lastPortGT14days": "unverified",
              "test.phone_landline_mobile_personal": "pass",
              "test.phoneActive": "pass",
              "test.lastPortGT30days": "unverified",
              "link.lastName_phone": "pass",
              "link.phone_state": "pass",
              "link.phone_address": "pass",
              "link.fullName_phone": "pass"
            }
          }
        ],
        "policyDecision": {
          "conclusion": "obligation",
          "obligationApiKey": "7777",
          "status": "success",
          "selectedPolicyID": 12391,
          "decisionDetail": "{}"
        }
      },
      {
        "apikey": "7777",
        "userAttributes": [
          {
            "attributeType": "InternationalTelephone",
            "values": {
              "dialCode": "1",
              "telephone": "(123) 456-7890"
            },
            "dateCreated": "02/08/2022 21:09:55 UTC"
          },
          {
            "attributeType": "PINDeliveryPreference",
            "values": {
              "pindeliverypreference": "sms"
            },
            "dateCreated": "02/08/2022 21:10:03 UTC"
          }
        ],
        "acquiredAttributes": [
          {
            "attributeType": "RawAssertionScore",
            "values": {
              "rawAssertionScore": "1"
            },
            "dateCreated": "02/08/2022 21:10:17 UTC"
          },
          {
            "attributeType": "AssertionScore",
            "values": {
              "assertionScore": "100"
            },
            "dateCreated": "02/08/2022 21:10:17 UTC"
          },
          {
            "attributeType": "DeviceType",
            "values": {
              "deviceType": "desktop"
            },
            "dateCreated": "02/08/2022 21:10:18 UTC"
          },
          {
            "attributeType": "IDWScore",
            "values": {
              "idwScore": "100"
            },
            "dateCreated": "02/08/2022 21:10:17 UTC"
          }
        ],
        "preferenceAttributes": [],
        "userAssertionList": [
          {
            "provider": "IDDataWeb",
            "serviceOffering": "IDDataWeb International Phone PIN Service",
            "dateAsserted": "02/08/2022 21:10:17 UTC",
            "assertions": {
              "test.device": "pass"
            }
          }
        ],
        "policyDecision": {
          "conclusion": "approve",
          "status": "success",
          "selectedPolicyID": 12392,
          "decisionDetail": "{}"
        }
      }
    ]
  },
  "policyDecision": "approve",
  "idwRiskScore": "100",
  "iss": "https://preprod1.iddataweb.com/preprod-axn",
  "idwTrustScore": "100",
  "exp": 1644355218,
  "iat": 1644354618,
  "jti": "008ab766-a58d-4489-b4cd-85188d2562d0"
}

In this example, you can follow the progress of the user through the objects in the endpointInstanceList array.

  • step 1 - selected country of US.
  • step 2 - submitted PII, and was verified.
  • step 3 - completed OTP phone possession check, which led to policyDecision of "approve" for that step. This led to the final policyDecision of approve at the top level of the JSON.