---
title: "Create Identity Verification Challenge"
method: POST
path: "/api/v1/users/:userIdentifier/identity-verification/challenges"
tags: ["Identity Verification"]
---

# Create Identity Verification Challenge

`POST /api/v1/users/:userIdentifier/identity-verification/challenges`

## Request

- Base URL: `https://merchant-api.accruesavings.com`
- URL: `https://merchant-api.accruesavings.com/api/v1/users/:userIdentifier/identity-verification/challenges`
- Auth: none declared. Required headers: `Client-ID`, `Authorization`
- TypeScript: <https://skmtc.dev/byaccrue/apis/accrue-merchant-api/docs/api/v1/users/:userIdentifier/identity-verification/challenges/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates a knowledge-based identity verification challenge for a user. Returns three multiple-choice questions derived from the user's profile (name, date of birth), linked account masks, and qualifying wallet transactions. The user must have a complete profile with name and date of birth before a challenge can be generated.

## Path parameters

- `userIdentifier` string, required: Accrue `userId` or merchant `userReference` (`externalUserId` / `stableExternalUserId`). Accrue resolves the identifier automatically against active wallets for your merchant.

## Headers

- `Client-ID` string, uuid, required: The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.
- `Authorization` string, uuid, required: Secure secret to access privileged endpoints.

## Response `200`

Challenge created successfully.

- CreateIdentityVerificationChallengeResponse
  - `data` IdentityVerificationChallenge, required: An active identity verification challenge with multiple-choice questions.
    - `id` string, uuid, required: Unique identifier for the object.
    - `type` 'IdentityVerificationChallenge', required
    - `attributes` object, required
      - `challengeId` string, uuid, required: Unique identifier for this verification challenge.
      - `expiresAt` string, date-time, required: ISO-8601 timestamp when the challenge expires. Challenges are valid for 30 minutes.
      - `questions` object[], required: Three knowledge-based authentication questions generated from the user's profile, linked accounts, and wallet activity.
        - `id` string, required: Opaque question identifier. Submit answers using this value.
        - `prompt` string, required: Question text presented to the user.
        - `options` object[], required: Multiple-choice options for the question.
          - `id` string, required: Opaque option identifier. Submit this value with the parent question.
          - `label` string, required: Human-readable option text shown to the user.
      - `updatedAt` string, date-time, required
      - `createdAt` string, date-time, required

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `404`: Not Found
- `500`: Internal Server Error

---

[API](https://skmtc.dev/byaccrue/apis/accrue-merchant-api.md) - [All operations](https://skmtc.dev/byaccrue/apis/accrue-merchant-api/llms.txt) - [OpenAPI document](https://skmtc.dev/byaccrue/apis/accrue-merchant-api/revisions/3e2d97ef2e6e?raw)
