---
title: "Verify a device for a user account"
method: POST
path: "/programs/{programCode}/deviceVerification"
tags: ["DeviceVerification"]
---

# Verify a device for a user account

`POST /programs/{programCode}/deviceVerification`

Verifies a device for a user account using device fingerprint, event type, and other metadata.

## Path parameters

- `programCode` string, required

## Headers

- `X-GD-RequestId` string, required

## Request body

- DeviceVerificationRequest — Represents a request for device verification. Contains event type, device/session details, user/account identifiers, and context information. Inherits standard request metadata from Gd.Bos.DataTransfer.Request.RequestBase.
  - `eventType` 'GuestCheckOut' | 'Enrollment' | 'Login' | 'PreLoginCardActivation', required — The event type for device verification (e.g., GuestCheckOut, Enrollment, Login, PreLoginCardActivation). Uses Gd.Bos.DataTransfer.Enums.DeviceVerificationEventType to specify the verification scenario.
  - `blackBox` string, required — The black box data containing device fingerprint or risk assessment payload.
  - `endUserIpAddress` string, required — The IP address of the end user initiating the device verification.
  - `accountIdentifier` string, nullable — The unique identifier for the account associated with the device verification.
  - `userIdentifier` string, nullable — The unique identifier for the user associated with the device verification.
  - `transferIdentifier` string, nullable — The unique identifier for the transfer associated with the device verification, if applicable.
  - `deviceSessionToken` string, nullable — The session token for the device, used to correlate device sessions.

## Response `200`

OK

- DeviceVerificationResponse — Represents the response returned after verifying a device. Contains device verification details, verification result, and the request key. Inherits standard response metadata from Gd.Bos.DataTransfer.Response.ResponseBase.
  - `deviceVerificationDetail` DeviceVerificationDetail — Represents the details of a device used for verification. Contains device token, type, model, and browser type information. Used in device verification requests and responses.
    - `deviceToken` string, nullable, required — The token uniquely identifying the device.
    - `deviceType` string, nullable, required — The type of device (e.g., "Mobile", "Desktop", "Tablet").
    - `deviceModel` string, nullable, required — The model of the device (e.g., "iPhone 13", "Galaxy S21").
    - `browserType` string, nullable, required — The type of browser used on the device (e.g., "Chrome", "Safari", "Edge").
  - `deviceVerificationResult` DeviceVerificationResult — Represents the result of a device verification operation. Contains verification status, response detail code, and a human-readable description. Used in device verification responses to indicate the outcome and provide additional context.
    - `isVerified` boolean — Indicates whether the device was successfully verified (true) or not (false).
    - `responseDetailCode` integer, nullable — The response detail code providing additional information about the verification result.
    - `responseDetailDescription` string, nullable — A human-readable description of the verification result or error.
  - `deviceVerificationRequestKey` integer, nullable — The unique key identifying the device verification request.
  - `responseDetails` ResponseDetail[], nullable — Required: A list of response details providing status codes, descriptions, and additional information about the result of the operation.
    - `code` integer — The primary status or error code for the response (e.g., 200 for success, 400 for validation error).
    - `subCode` integer, nullable — An optional subcode providing more granular detail about the response or error.
    - `description` string, nullable — A human-readable description of the response, error, or status.
    - `url` string, nullable — A URL linking to documentation or a web page with more information about the response code.

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `500` — Internal Server Error
- `503` — Service Unavailable

---

[API](https://skmtc.net/greendot/apis/baas-apis.md) · [All operations](https://skmtc.net/greendot/apis/baas-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/greendot/baas-apis/revisions/666553766b78/schema)
