---
title: "Verify a User"
method: POST
path: "/v1/users/{userId}/connect/verification"
tags: ["Connect"]
---

# Verify a User

`POST /v1/users/{userId}/connect/verification`

## Request

- Base URL: `https://secure-sandbox-api.spinwheel.io`
- URL: `https://secure-sandbox-api.spinwheel.io/v1/users/{userId}/connect/verification`
- Auth: one of:
  - API key in header `Authorization`
  - API key in header `Authorization`

Run an enhanced verification or make corrections to a given identity. On success, the stored profile is replaced with the submitted values. Submit the user's complete profile. Only the first address is verified. The user must already be connected. This endpoint is only accessible via the secure API. This API requires Spinwheel Support approval to enable it before it can be used.

## Path parameters

- `userId` string, required

## Request body

- ConnectVerificationRequest
  - `firstName` string, required: The first name of the user.
  - `lastName` string, required: The last name of the user.
  - `dateOfBirth` string: The date of birth. Formatted as YYYY-MM-DD. Optional: this endpoint always carries the legal name, so an identity can be resolved on phone + name where no date of birth is held.
  - `phoneNumber` string, required: The phone number in E.164 format.
  - `ssn` string, required: The user's ssn (without hyphens)
  - `addresses` PreverifiedUserDataAddress[], required: Addresses associated with the user
    - `addressLine1` string, required: The first line of the address
    - `addressLine2` string: Optional second line of the address
    - `city` string, required: The city of the address
    - `state` string, required: The state of the address
    - `zip` string, required: The zip code of the address

## Response `200`

Success

- VerifyResponse
  - `status` ResponseStatus, required
    - `code` number
    - `desc` string
    - `messages` Message[]
      - `desc` string, required
      - `type` 'ERROR' | 'WARN' | 'INFO'
  - `data` VerifyResponseData, required
    - `userId` string, required: Id of the user
    - `extUserId` string, required: A client id registered with Spinwheel on creation
    - `connectionId` string, required: Id of the connection
    - `connectionStatus` 'SUCCESS', required: The connection status.
    - `profile` VerifyUserProfile
      - `firstName` string, required: First Name
      - `lastName` string, required: Last Name
      - `ssnLastFourDigits` string: Last 4 digits of the ssn. Absent where the identity provider did not return one.
      - `phoneNumber` string: Phone number
      - `dateOfBirth` string: The date of birth. Absent where the identity provider did not return one, which is the case where the user was connected without supplying one.
      - `addresses` Address[]: Addresses
        - `addressLine1` string, required
        - `addressLine2` string
        - `city` string, required
        - `state` 'AL' | 'AK' | 'AZ' | 'AR' | 'CA' | 'CO' | 'CT' | 'DC' | 'DE' | 'FL' | 'GA' | 'HI' | 'ID' | 'IL' | 'IN' | 'IA' | 'KS' | 'KY' | 'LA' | 'ME' | 'MD' | 'MA' | 'MI' | 'MN' | 'MS' | 'MO' | 'MT' | 'Ne' | 'NE' | 'NV' | 'NH' | 'NJ' | 'NM' | 'NY' | 'NC' | 'ND' | 'OH' | 'OK' | 'OR' | 'PA' | 'RI' | 'SC' | 'SD' | 'TN' | 'TX' | 'UT' | 'VT' | 'VA' | 'WA' | 'WV' | 'WI' | 'WY', required
        - `zip` string, required
        - `zipExtension` string
    - `riskAssessments` VerifyRiskAssessment[]: Verification results from the identity vendor. Returned only for organizations with verification results enabled.
      - `vendor` string, required: The verification vendor.
      - `version` string, required: The vendor product that produced this assessment.
      - `details` VerifyRiskAssessmentDetails, required
        - `phoneNumber` string, required: The phone number the identity was matched against.
        - `lineType` string, required: Line type of the phone number.
        - `carrier` string, required: Carrier of the phone number.
        - `countryCode` string, required: Country code of the phone number.
        - `verified` boolean, required: The overall verification decision.
        - `multiVerified` boolean: The verification decision across data sources.
        - `cipConfidence` string: Customer identification confidence, e.g. 'low' or 'high'.
        - `multiCipConfidence` string: Customer identification confidence across data sources, e.g. 'low' or 'high'.
        - `enrollStatus` string: Enrollment status of the identity.
        - `name` VerifyRiskAssessmentName
          - `firstName` number, required: First name match score (0-100).
          - `lastName` number, required: Last name match score (0-100).
          - `nameScore` number, required: Overall name match score (0-100).
        - `address` VerifyRiskAssessmentAddress
          - `streetNumber` number, required: Street number match score.
          - `street` boolean, required: Whether the street matched the record.
          - `city` boolean, required: Whether the city matched the record.
          - `region` boolean, required: Whether the region matched the record.
          - `postalCode` boolean, required: Whether the postal code matched the record.
          - `distance` number, required: Distance from the address on record.
          - `addressScore` number, required: Overall address match score (0-100).
        - `email` VerifyRiskAssessmentEmail
          - `emailAddress` boolean, required: Whether the email address matched the record.
        - `identifiers` VerifyRiskAssessmentIdentifiers
          - `ssn` boolean: Whether the SSN matched the record.
          - `last4` boolean: Whether the last 4 digits of the SSN matched the record.
          - `dob` boolean: Whether the date of birth matched the record.
          - `driversLicenseNumber` boolean: Whether the driver's license number matched the record.
          - `driversLicenseState` boolean: Whether the driver's license state matched the record.
        - `knowYourCustomer` object: AML/watchlist screening results. Returned only when CIP screening is enabled for your organization.
        - `reasonCodes` string[], required: Vendor diagnostic reason codes.
        - `dataSource2` object: Match results from the secondary data source.
    - `networkToken` string: The Spinwheel network token, to be used for passing lead data to the network. Present only if the user already has one.

## Other responses

- `400`: Bad Request
- `403`: Endpoint Access Denied
- `404`: User Not Found

## Changes

- **2026-11-03** `aa032469622f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/spinwheel/apis/discover/changes/v1/users/:userId/connect/verification/post.md)

---

[API](https://skmtc.dev/spinwheel/apis/discover.md) - [All operations](https://skmtc.dev/spinwheel/apis/discover/llms.txt) - [OpenAPI document](https://skmtc.dev/spinwheel/apis/discover/revisions/aa032469622f?raw)
