{"templateId":"markdown","versions":[{"version":"20261201","label":"(Preview) 2026-12-01","link":"/products/3ds/20261201/android-ios/challenge-verification","default":false,"active":false,"folderId":"9e210f12"},{"version":"v1","label":"v1","link":"/products/3ds/v1/android-ios/challenge-verification","default":false,"active":false,"folderId":"9e210f12"},{"version":"v2","label":"v2","link":"/products/3ds/v2/android-ios/challenge-verification","default":false,"active":false,"folderId":"9e210f12"},{"version":"v3","label":"v3 (Latest)","link":"/products/3ds/android-ios/challenge-verification","default":true,"active":true,"folderId":"9e210f12"}],"sharedDataIds":{"sidebar":"sidebar-products/3ds/sidebars.yaml","current-catalog-info":"current-catalog-info-/products/3ds/openapi","api-docs-products/3ds/@v3/openapi.yaml":"api-docs-products/3ds/@v3/openapi.yaml"},"props":{"metadata":{"markdoc":{"tagList":["partial","admonition","openapi-code-sample","tabs","tab","code-snippet"]},"custom_product":"3DS","type":"markdown"},"seo":{"title":"Challenge display and verification (Android and iOS) | 3DS API","description":"Worldpay for Developers - docs, code examples, resources and tools. Everything you need to build your omnichannel payment solution.","siteUrl":"https://docs.worldpay-bsh.securedataplatform.co.uk","image":"/access/assets/worldpay-logo-light.21b7daf79984773a9fcd7d4fbcb07ae5289dfffd6023c4c3dca720c7058e53dc.33f780a6.svg","keywords":"documentation, api, openapi, sdks, developer, payments, json, payouts, 3ds","jsonLd":{"@context":"https://schema.org","@type":"Organization","url":"https://docs.worldpay-bsh.securedataplatform.co.uk/access","name":"Worldpay"},"meta":[{"name":"google-site-verification","content":"zjziIKaP3ImsqsfhYnEBnq1R85UabiSwl7HTXuwtZuo"},{"name":"doc_product","content":"Access"},{"name":"doc_category","content":"Documentation"}],"llmstxt":{"hide":false,"sections":[{"title":"Payments API","description":"Payment orchestration API combining fraud assessment, 3ds authentication, SCA exemptions, Worldpay Token creation and a card or wallet based payment.","includeFiles":["products/payments/@20240601/**/*"]},{"title":"Payment Queries API","description":"Querying your payments data, based on a variety of parameters.","includeFiles":["products/payment-queries/@v1/**/*"]},{"title":"Card BIN Data API","description":"Provides detailed information about a card.","includeFiles":["products/card-bin/@v1/**/*"]},{"title":"3DS Authentication API","description":"Request 3DS authentication to protect against fraud, be SCA compliant and to shift liability using this standalone API.","includeFiles":["products/3ds/@v3/**/*"]},{"title":"FraudSight API","description":"Request a risk assessment and receive a response with an outcome (e.g. lowRisk) using this standalone API.","includeFiles":["products/fraudsight/@v1/**/*"]},{"title":"Checkout SDK","description":"Integrate using our clientside SDKs for both web and native devices. Benefit from SAQ-A/PCI-SSF compliance.","includeFiles":["products/checkout/web/@v2/**/*","products/checkout/ios/@v4/**/*","products/checkout/android/@v4/**/*","products/checkout/react-native/@v3/**/*","products/checkout/flutter/@v1/**/*"]},{"title":"Tokens API","description":"Minimizes the exposure of sensitive card details and increases the security of your customer's card details.","includeFiles":["products/tokens/@v3/**/*"]},{"title":"Card Payments API","description":"Request a card payment using this standalone API, requires separate requests for 3DS, Fraud assessment etc.","includeFiles":["products/card-payments/@v7/**/*"]},{"title":"Card Verifications API","description":"Verify your customer's card to maximize your authentication rates.","includeFiles":["products/card-verifications/@v6/**/*"]},{"title":"Account Payouts API","description":"Send funds to your customer's bank accounts and search for payouts using parameters.","includeFiles":["products/account-payouts/@20250101/**/*"]},{"title":"APMs","description":"Pay using eWallets, bank transfers, direct debits, local card schemes, Postpay and eInvoice/ Buy Now Pay Later.","includeFiles":["products/apms/@20240701/**/*"]},{"title":"Balance API","description":"Request your account details for a single account or all accounts under an entity.","includeFiles":["products/balance/@20250101/**/*"]},{"title":"Card Payouts API","description":"Send funds to your customer's cards.","includeFiles":["products/card-payouts/@v4/**/*"]},{"title":"Events (Webhooks)","description":"Receive status updates from Access Worldpay by setting up a webhook.","includeFiles":["products/events/@v1/**/*"]},{"title":"FX API","description":"Manage Foreign Exchange (FX) on your payments.","includeFiles":["products/fx/@v1/**/*"]},{"title":"Hosted Payment Pages (HPP) API","description":"Our low-code option to take payments securely at the lowest PCI compliance level - SAQ A.","includeFiles":["products/hosted-payment-pages/@v1/**/*"]},{"title":"Money Transfers API","description":"Money Transfer OCTs (Original Credit Transaction) allow funds to be pushed to an eligible card in 30 minutes or less.","includeFiles":["products/money-transfers/@v1/**/*"]},{"title":"Parties API","description":"Create parties, manage your payout instruments and beneficial owners and carry out identity verification checks.","includeFiles":["products/parties/@20250101/**/*"]},{"title":"SCA Exemptions API","description":"Maximize a frictionless checkout experience by using issuer data insights to apply exemptions.","includeFiles":["products/sca-exemptions/@v1/**/*"]},{"title":"Split Payments API","description":"Divide funds from a single payment amongst yourself and your parties/sellers.","includeFiles":["products/split-payments/@20250625/**/*"]},{"title":"Statements API","description":"Retrieve your account statement and see individual entries for all credits and debits.","includeFiles":["products/statements/@20250101/**/*"]},{"title":"Transfers API","description":"Transfer funds from source account to target account.","includeFiles":["products/transfers/@20250101/**/*"]},{"title":"Verified Tokens API","description":"Verified Tokens ensures that your customer's payment details are valid and CIT compliant when creating a token.","includeFiles":["products/verified-tokens/@v3/**/*"]}]}},"dynamicMarkdocComponents":["openapi"],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Last updated"]},": 12 August 2026 | ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/3ds/changelog/"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Change log"]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"challenge-display-and-verification","__idx":0},"children":["Challenge display and verification"]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If the authentication response ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["outcome"]}," is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["challenged"]}," you can use the SDK to provide the improved ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#3ds-challenge-display"},"children":["3DS2 Challenge display"]}," for mobile devices."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"3ds-challenge-display","__idx":1},"children":["3DS Challenge display"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You will need the following values from the authentication response to use in the SDK."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Access Name"},"children":["Access Name"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Value from"},"children":["Value from"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Cardinal SDK Name"},"children":["Cardinal SDK Name"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["challenge.reference"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["authentication response"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionId"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["challenge.payload"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["authentication response"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["payload"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Access 3DS API is periodically tested against the latest version of the Cardinal SDK. You can see the latest tested version in the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/3ds/changelog"},"children":["change log"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"sdk-challenge-display","__idx":2},"children":["SDK challenge display"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://developer.cardinaltrusted.com/docs/android#validate-cmpi-lookup-response-to-create-an-authentication-session","target":"_blank"},"children":["Android"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://developer.cardinaltrusted.com/docs/ios-implementation#handle-the-lookup-response-and-create-the-authentication-session","target":"_blank"},"children":["iOS"]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"customize-challenge-interface","__idx":3},"children":["Customize challenge interface"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["As part of SDK setup you can customize the challenge user interface"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://developer.cardinaltrusted.com/docs/challenge-user-interface-customization","target":"_blank"},"children":["Android"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://developer.cardinaltrusted.com/docs/challenge-user-interface-customization-ios","target":"_blank"},"children":["iOS"]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"verification","__idx":4},"children":["Verification"]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Once the challenge has been completed, you must make a verification request to verify the result of the challenge."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Important"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You should only request the verification from your backend system. You should not call it directly from the mobile application using the Access credentials."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["POST your verification request to our ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["3ds:verify"]}," action link received in your authentication response."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"verification-example-request","__idx":5},"children":["Verification example request"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["POST  ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://try.access.worldpay-bsh.securedataplatform.co.uk/verifications/customers/3ds/verification"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Verification request body:"]},{"$$mdtype":"Tag","name":"OpenApiCodeSample","attributes":{"descriptionFile":"api-docs-products/3ds/@v3/openapi.yaml","operationId":"verify","exampleKey":"Verification","parameters":{},"environments":{},"codeSamplesResolved":[{"lang":"json","title":"Payload application/vnd.worldpay.verifications.customers-v3.hal+json","source":"{\n  \"transactionReference\": \"Memory265-13/08/1876\",\n  \"merchant\": {\n    \"entity\": \"default\"\n  },\n  \"challenge\": {\n    \"reference\": \"1xoKSqTvmLvhRYBsaE60\"\n  }\n}"},{"lang":"shell","title":"curl","source":"curl -i -X POST \\\n  https://try.access.worldpay-bsh.securedataplatform.co.uk/verifications/customers/3ds/verification \\\n  -H 'Accept: application/vnd.worldpay.verifications.customers-v3.hal+json' \\\n  -H 'Content-Type: application/vnd.worldpay.verifications.customers-v3.hal+json' \\\n  -d '{\n    \"transactionReference\": \"Memory265-13/08/1876\",\n    \"merchant\": {\n      \"entity\": \"default\"\n    },\n    \"challenge\": {\n      \"reference\": \"1xoKSqTvmLvhRYBsaE60\"\n    }\n  }'"},{"lang":"python","title":"Python","source":"import requests\n\nurl = \"https://try.access.worldpay-bsh.securedataplatform.co.uk/verifications/customers/3ds/verification\"\n\npayload = '''\n  {\n    \"transactionReference\": \"Memory265-13/08/1876\",\n    \"merchant\": {\n      \"entity\": \"default\"\n    },\n    \"challenge\": {\n      \"reference\": \"1xoKSqTvmLvhRYBsaE60\"\n    }\n  }\n'''\n\nheaders = {\n  \"Content-Type\": \"application/vnd.worldpay.verifications.customers-v3.hal+json\",\n  \"Accept\": \"application/vnd.worldpay.verifications.customers-v3.hal+json\"\n}\n\nresponse = requests.post(url, data=payload, headers=headers)\n\ndata = response.json()\nprint(data)"},{"lang":"java","title":"Java","source":"import java.net.*;\nimport java.net.http.*;\nimport java.util.*;\n\npublic class App {\n  public static void main(String[] args) throws Exception {\n    var httpClient = HttpClient.newBuilder().build();\n\n    var host = \"https://try.access.worldpay-bsh.securedataplatform.co.uk\";\n    var pathname = \"/verifications/customers/3ds/verification\";\n    var request = HttpRequest.newBuilder()\n      .POST(HttpRequest.BodyPublishers.ofString(payload))\n      .uri(URI.create(host + pathname ))\n      .header(\"Content-Type\", \"application/vnd.worldpay.verifications.customers-v3.hal+json\")\n      .header(\"Accept\", \"application/vnd.worldpay.verifications.customers-v3.hal+json\")\n      .build();\n\n    var response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());\n\n    System.out.println(response.body());\n  }\n}"},{"lang":"javascript","title":"Node.js","source":"import fetch from 'node-fetch';\n\nasync function run() {\n  const resp = await fetch(\n    `https://try.access.worldpay-bsh.securedataplatform.co.uk/verifications/customers/3ds/verification`,\n    {\n      method: 'POST',\n      headers: {\n        'Content-Type': 'application/vnd.worldpay.verifications.customers-v3.hal+json',\n        Accept: 'application/vnd.worldpay.verifications.customers-v3.hal+json'\n      },\n      body: `{\n          \"transactionReference\": \"Memory265-13/08/1876\",\n          \"merchant\": {\n            \"entity\": \"default\"\n          },\n          \"challenge\": {\n            \"reference\": \"1xoKSqTvmLvhRYBsaE60\"\n          }\n        }`\n    }\n  );\n\n  const data = await resp.text();\n  console.log(data);\n}\n\nrun();"},{"lang":"go","title":"Go","source":"package main\n\nimport (\n  \"fmt\"\n  \"strings\"\n  \"net/http\"\n  \"io/ioutil\"\n)\n\nfunc main() {\n  reqUrl := \"https://try.access.worldpay-bsh.securedataplatform.co.uk/verifications/customers/3ds/verification\"\n  payload := strings.NewReader(\"{\\n  \\\"transactionReference\\\": \\\"Memory265-13/08/1876\\\",\\n  \\\"merchant\\\": {\\n    \\\"entity\\\": \\\"default\\\"\\n  },\\n  \\\"challenge\\\": {\\n    \\\"reference\\\": \\\"1xoKSqTvmLvhRYBsaE60\\\"\\n  }\\n}\")\n  req, err := http.NewRequest(\"POST\", reqUrl, payload)\n  if err != nil {\n    panic(err)\n  }\n  req.Header.Add(\"Content-Type\", \"application/vnd.worldpay.verifications.customers-v3.hal+json\")\n  req.Header.Add(\"Accept\", \"application/vnd.worldpay.verifications.customers-v3.hal+json\")\n  res, err := http.DefaultClient.Do(req)\n  if err != nil {\n    panic(err)\n  }\n  defer res.Body.Close()\n  body, err := ioutil.ReadAll(res.Body)\n  if err != nil {\n    panic(err)\n  }\n\n  fmt.Println(res)\n  fmt.Println(string(body))\n}"},{"lang":"php","title":"PHP","source":"/**\n * Requires libcurl\n */\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, [\n  CURLOPT_HTTPHEADER => [\n    \"Accept: application/vnd.worldpay.verifications.customers-v3.hal+json\",\n    \"Content-Type: application/vnd.worldpay.verifications.customers-v3.hal+json\"\n  ],\n  CURLOPT_POSTFIELDS => \"{\\n  \\\"transactionReference\\\": \\\"Memory265-13/08/1876\\\",\\n  \\\"merchant\\\": {\\n    \\\"entity\\\": \\\"default\\\"\\n  },\\n  \\\"challenge\\\": {\\n    \\\"reference\\\": \\\"1xoKSqTvmLvhRYBsaE60\\\"\\n  }\\n}\",\n  CURLOPT_URL => \"https://try.access.worldpay-bsh.securedataplatform.co.uk/verifications/customers/3ds/verification\",\n  CURLOPT_RETURNTRANSFER => true,\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n]);\n\n$response = curl_exec($curl);\n$error = curl_error($curl);\n\ncurl_close($curl);\n\nif ($error) {\n  echo \"cURL Error #:\" . $error;\n} else {\n  echo $response;\n}"},{"lang":"ruby","title":"Ruby","source":"require 'uri'\nrequire 'net/http'\nrequire 'openssl'\n\nurl = URI('https://try.access.worldpay-bsh.securedataplatform.co.uk/verifications/customers/3ds/verification')\n\nhttp = Net::HTTP.new(url.host, url.port)\nhttp.use_ssl = true\n\nrequest = Net::HTTP::Post.new(url)\nrequest['Content-Type'] = 'application/vnd.worldpay.verifications.customers-v3.hal+json'\nrequest['Accept'] = 'application/vnd.worldpay.verifications.customers-v3.hal+json'\nrequest.body = \"{\\n  \\\"transactionReference\\\": \\\"Memory265-13/08/1876\\\",\\n  \\\"merchant\\\": {\\n    \\\"entity\\\": \\\"default\\\"\\n  },\\n  \\\"challenge\\\": {\\n    \\\"reference\\\": \\\"1xoKSqTvmLvhRYBsaE60\\\"\\n  }\\n}\"\n\nresponse = http.request(request)\nputs response.read_body\n"},{"lang":"csharp","title":"C#","source":"using System;\nusing System.Net.Http;\nusing System.Threading.Tasks;\n\npublic class Program\n{\n  public static async Task Main()\n  {\n    System.Net.Http.HttpClient client = new()\n    {\n      DefaultRequestHeaders =\n      {\n        {\"Accept\", \"application/vnd.worldpay.verifications.customers-v3.hal+json\"},\n      }\n    };\n\n    using HttpResponseMessage request = await client.PostAsync(\"https://try.access.worldpay-bsh.securedataplatform.co.uk/verifications/customers/3ds/verification\", postData);\n    string response = await request.Content.ReadAsStringAsync();\n\n    Console.WriteLine(response);\n  }\n}"}]},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"verification-responses","__idx":6},"children":["Verification responses"]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Best practice"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Access Worldpay returns a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["WP-CorrelationId"]}," in the headers of service responses. We ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["highly recommend"]}," you log this. The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["WP-CorrelationId"]}," is used by us to examine individual service requests."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Here are examples of the verification responses you would receive. To understand what these outcomes mean and how to reproduce them for testing purposes see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/3ds/testing"},"children":["3DS testing"]},"."]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Authenticated","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Successful authentication following a challenge"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"file":"../examples/responses/verification-authenticated.yaml","language":"json","title":"authenticated","header":{"title":"authenticated","controls":{"copy":{}}},"lang":"json","source":"  {\n      \"outcome\": \"authenticated\",\n      \"transactionReference\": \"Memory265-13/08/1876\",\n      \"acsTransactionId\": \"fe007a6e-315f-4cdf-98ca-28a9e40e3581\",\n      \"enrolled\": \"Y\",\n      \"authentication\": {\n          \"version\": \"2.1.0\",\n          \"authenticationValue\": \"MAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\n          \"eci\": \"05\",\n          \"transactionId\": \"c5b808e7-1de1-4069\"\n      }\n  }"},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"file":"../examples/responses/verification-authenticated-cartesbancaires.yaml","language":"json","title":"authenticated - Cartes Bancaires","header":{"title":"authenticated - Cartes Bancaires","controls":{"copy":{}}},"lang":"json","source":"    \"transactionReference\": \"Memory265-13/08/1876\",\n    \"acsTransactionId\": \"fe007a6e-315f-4cdf-98ca-28a9e40e3581\",\n    \"enrolled\": \"Y\",\n    \"authentication\": {\n        \"version\": \"2.1.0\",\n        \"authenticationValue\": \"AAIBBYNoEwAAACcKhAJkdQAAAAA=\",\n        \"eci\": \"05\",\n        \"transactionId\": \"1be85590-d6f9-4a0b-93c9-3a7188d9a463\",\n        \"cryptogramAlgorithm\": \"1\",\n        \"challengePreference\": \"challengeMandated\",\n        \"authenticationFlow\": \"challenge\",\n        \"brand\": \"cartesBancaires\"\n    }\n}"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Authentication failed","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Issuer failed the authentication following the challenge"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"file":"../examples/responses/verification-authentication-failed.yaml","language":"json","title":"authenticationFailed","header":{"title":"authenticationFailed","controls":{"copy":{}}},"lang":"json","source":"  {\n      \"outcome\": \"authenticationFailed\",\n      \"transactionReference\": \"Memory265-13/08/1876\",\n      \"acsTransactionId\": \"fe007a6e-315f-4cdf-98ca-28a9e40e3581\",\n      \"enrolled\": \"Y\",\n      \"authentication\": {\n          \"version\": \"2.2.0\",\n          \"eci\": \"00\",\n          \"transactionId\": \"N+en2I5+ZK/kQqk69wXdI8XIPg8=\"\n      },\n      \"_links\": {\n          \"3ds:authenticate\": {\n              \"href\": \"https://try.access.worldpay-bsh.securedataplatform.co.uk/verifications/customers/3ds/authentication\"\n          },\n          \"curies\": [\n              {\n                  \"href\": \"https://try.access.worldpay-bsh.securedataplatform.co.uk/rels/verifications/customers/3ds/{rel}\",\n                  \"templated\": true,\n                  \"name\": \"3ds\"\n              }\n          ]\n      }\n  }"},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"file":"../examples/responses/verification-authentication-failed-cartesbancaires.yaml","language":"json","title":"authenticationFailed - Cartes Bancaires","header":{"title":"authenticationFailed - Cartes Bancaires","controls":{"copy":{}}},"lang":"json","source":"    \"transactionReference\": \"Memory265-13/08/1876\",\n    \"acsTransactionId\": \"fe007a6e-315f-4cdf-98ca-28a9e40e3581\",\n    \"enrolled\": \"Y\",\n    \"authentication\": {\n        \"version\": \"2.1.0\",\n        \"eci\": \"07\",\n        \"transactionId\": \"424c464d-3b04-4101-950a-8a71cd1f9dc6\",\n        \"cryptogramAlgorithm\": \"1\",\n        \"challengePreference\": \"challengeMandated\",\n        \"authenticationFlow\": \"frictionless\",\n        \"statusReason\": \"01\",\n        \"brand\": \"cartesBancaires\"\n    },\n    \"_links\": {\n        \"3ds:authenticate\": {\n            \"href\": \"https://try.access.worldpay-bsh.securedataplatform.co.uk/verifications/customers/3ds/authentication\"\n        },\n        \"curies\": [\n            {\n                \"href\": \"https://try.access.worldpay-bsh.securedataplatform.co.uk/rels/verifications/customers/3ds/{rel}\",\n                \"name\": \"3ds\",\n                \"templated\": true\n            }\n        ]\n    }\n}"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Signature failed","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"file":"../examples/responses/verification-signature-failed.yaml","language":"json","title":"signatureFailed","header":{"title":"signatureFailed","controls":{"copy":{}}},"lang":"json","source":"  {\n      \"outcome\": \"signatureFailed\",\n      \"transactionReference\": \"Memory265-13/08/1876\",\n      \"authentication\": {\n          \"version\": \"1.0.2\",\n          \"eci\": \"02\"\n      },\n      \"_links\": {\n          \"3ds:authenticate\": {\n              \"href\": \"https://try.access.worldpay-bsh.securedataplatform.co.uk/verifications/customers/3ds/authentication\"\n          },\n          \"curies\": [\n              {\n                  \"href\": \"https://try.access.worldpay-bsh.securedataplatform.co.uk/rels/verifications/customers/3ds/{rel}\",\n                  \"templated\": true,\n                  \"name\": \"3ds\"\n              }\n          ]\n      }\n  }"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Unavailable","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Error/Timeout whilst attempting authentication."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"file":"../examples/responses/verification-unavailable.yaml","language":"json","title":"unavailable","header":{"title":"unavailable","controls":{"copy":{}}},"lang":"json","source":"  {\n      \"outcome\": \"unavailable\",\n      \"transactionReference\": \"Memory265-13/08/1876\",\n      \"_links\": {\n          \"3ds:authenticate\": {\n              \"href\": \"https://try.access.worldpay-bsh.securedataplatform.co.uk/verifications/customers/3ds/authentication\"\n          },\n          \"3ds:verify\": {\n              \"href\": \"https://try.access.worldpay-bsh.securedataplatform.co.uk/verifications/customers/3ds/verification\"\n          },\n          \"curies\": [\n              {\n                  \"href\": \"https://try.access.worldpay-bsh.securedataplatform.co.uk/rels/verifications/customers/3ds/{rel}\",\n                  \"templated\": true,\n                  \"name\": \"3ds\"\n              }\n          ]\n      }\n  }"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You cannot re-use the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authenticationValue"]}," in multiple authorization requests. Re-using the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authenticationValue"]}," in this way will result in issuer declines and may incur fees."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Apply the details (such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["eci"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["version"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authenticationValue"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionId"]},") required by ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/card-payments/"},"children":["Card Payments"]}," in the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/card-payments/authorize-a-payment#3ds"},"children":["authorization request"]},". See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/3ds/testing"},"children":["Testing"]}," for details."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Next steps"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/card-payments/authorize-a-payment#3ds"},"children":["Take a payment"]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/3ds/testing"},"children":["Testing"]}]}]},"headings":[{"value":"Challenge display and verification","id":"challenge-display-and-verification","depth":1},{"value":"3DS Challenge display","id":"3ds-challenge-display","depth":2},{"value":"SDK challenge display","id":"sdk-challenge-display","depth":3},{"value":"Customize challenge interface","id":"customize-challenge-interface","depth":3},{"value":"Verification","id":"verification","depth":1},{"value":"Verification example request","id":"verification-example-request","depth":2},{"value":"Verification responses","id":"verification-responses","depth":2}],"frontmatter":{"seo":{"title":"Challenge display and verification (Android and iOS) | 3DS API"}},"lastModified":"2026-03-11T10:08:16.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/3ds/android-ios/challenge-verification","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}