---
title: "Device Data Complete"
method: POST
path: "/deviceData/{key}/complete"
tags: ["internal"]
---

# Device Data Complete

`POST /deviceData/{key}/complete`

## Request

- Base URL: `https://try.access.worldpay.com/3ds`
- URL: `https://try.access.worldpay.com/3ds/deviceData/{key}/complete`
- Auth: HTTP basic
- TypeScript: <https://skmtc.dev/worldpay/apis/3ds/docs/deviceData/:key/complete/post.ts> (a function with typed inputs; its response is checked against the schema)

Provide the `sessionId` or `consumerSessionId` from device data collection to continue the 3DS authentication.

__This endpoint is not used for the `redirect` flow.__

## Path parameters

- `key` string, required

## Headers

- `WP-Api-Version` '2026-10-01', required

## Request body

- DeviceDataRequest
  - `collectionReference` string: Add the `sessionId` provided in the [postMessage for the device data collection form (web)](/) or for native (iOS/Android), returned as `consumerSessionId` as part of [SDK initialization](/). <br><br>__Note:__ If device data collection fails you can attempt the payment without this value, but you will see an increased number of `challenged` and even `authenticationFailure` outcomes, if this happens for a lot of requests.
  - `deviceData` DeviceData: Object containing device data information.
    - `acceptHeader` string, required: Used by the issuer to check if the customer's browser is compatible with the issuer challenge display.
    - `userAgentHeader` string, required: Used by issuers as part of risk analysis and to correctly display the challenge. Must conform to RFC 7321 e.g. `Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0)`.
    - `browserLanguage` string: Your customer's browser language that can be used by the issuer in risk analysis. Must conform to the language tags defined by IETF, e.g. en-GB, fr-FR.
    - `ipAddress` string: A unique identifier for your customer's physical location that can be used by the issuer in risk analysis. Must be in IPv4 or IPv6 format, e.g. 192.0.0.0.
    - `browserJavaEnabled` boolean: Defines whether Java is enabled on your customer's browser.
    - `browserColorDepth` integer: The color depth of your customers browser. Between 1 and 99.
    - `browserScreenHeight` integer: Defines the pixel height of the customers browser.
    - `browserScreenWidth` integer: Defines the pixel width of the customers browser.
    - `timeZone` string: Time zone offset in minutes between UTC and your customer's browser local time. Example time zone offset values in minutes: If UTC -5 hours: `300` `+300` If UTC +5 hours: `-300`
    - `browserJavascriptEnabled` boolean: Defines whether Javascript is enabled on your customer's browser.
    - `channel` 'browser' | 'native' | 'ucpBrowser': The channel used e.g. browser.

## Response `200`

The authentication has been created.

- 3DSDevice200Response
  - `outcome` string

## Other responses

- `400`: The request has encountered validation errors.
- `502`: Invalid response received from upstream.
- `503`: The requested service is unavailable.

---

[API](https://skmtc.dev/worldpay/apis/3ds.md) - [All operations](https://skmtc.dev/worldpay/apis/3ds/llms.txt) - [OpenAPI document](https://skmtc.dev/worldpay/apis/3ds/revisions/0233a51762d3?raw)
