---
title: Testing 3D Secure 2 Authentication
slug: testing-3d-secure-2-authentication
docTags: 
createdAt: 2024-06-04T13:24:28.867Z
---

:::hint{type="info"}
To trigger specific **3D Secure 2 user journeys**, include the **cardHolderName&#x20;**&#x61;s specified in the [CardHolderName Table](docId\:BdCGiYQDm3mlE-UBxp1yR).
The **cardHolderName&#x20;**&#x69;s case sensitive and corresponds to an **expected transaction result**.
:::

### Important to Consider

- Ensure Judopay has enabled 3D Secure 2 on you&#x72;**&#x20;sandbox tokens**.
  - If 3D Secure 2 is not enabled on your tokens, the test transaction will be successful, however it **will not have followed** the 3D Secure 2 verification process.
    - Contact [Customer Support](mailto\:help@judopay.com) to set this up.

The following 3D Secure 2 scenarios are intended for merchants who are **directly integrating&#x20;**&#x77;ith Judopay, to test the [Frictionless and Challenge Flows](docId\:K7FnZbol73SsCtbct4NXM).

If you are integrating using Judopay's front end / UI SDK, the **3D Secure 2 flows are handled on your behalf**.&#x20;

***

### CardHolderName Table

To trigger a **challenge response without device details**, from the CardHolderName table, use cardHolderName:

- Frictionless NoMethod

with **challengeRequestIndicator=challengeAsMandate**.

:::hint{type="info"}
If you specify a different **cardHolderName&#x20;**&#x74;o any found in the table below, the **Frictionless Successful flow&#x20;**&#x77;ill be the default flow.
:::

| **CardHolderName**               | **Flow Type**      | **Expected Responses**                    | **ECI\*** |
| -------------------------------- | ------------------ | ----------------------------------------- | --------- |
| Frictionless Successful          | Frictionless       | DeviceDetails<br />Receipt                | 05        |
| Frictionless NoMethod            | Frictionless       | Receipt                                   | 05        |
| Frictionless AuthNotSuccess      | Frictionless       | DeviceDetails<br />Error code **177**     | 06        |
| Frictionless AuthFailed          | Frictionless<br /> | DeviceDetails<br />Error code **165**     | 07        |
| Frictionless IssuerReject        | Frictionless       | DeviceDetails<br />Error code **186**     | 07<br />  |
| Frictionless AuthenticationError | Frictionless<br /> | DeviceDetails<br />Error code **182**     | 07        |
| Challenge Required<br />         | Challenge          | DeviceDetails<br />Challenge<br />Receipt | N/A       |

**\*Electronic Commerce Indicator**
The Electronic Commerce Indicator (ECI) as received from the 3D Secure Server. Denotes the 3D Secure Authentication status, used to show liability status.

For more information, see [Liability Shift](docId\:qmiciV81gzuiXFm0iDYmg).

:::hint{type="info"}
You should check how your app responds to the different transaction results.
:::

***

## Testing Frictionless 3D Secure 2 Flows

:::CodeblockTabs
Request Example

```json
{
  "cardNumber": 4976000000003436,
  "cv2": 452,
  "expiryDate": "12/30",
  "cardAddress": {
    "address1": "32 Mulberry Street",
    "address2": "Eastfort",
    "town": "Violetdell",
    "postCode": "VL14 8PA",
    "countryCode": 826
  },
  "judoId": "yourJudoId",
  "yourConsumerReference": "yourConsumerReference",
  "yourPaymentReference": "yourPaymentReference",
  "yourPaymentMetaData": {
    "internalLocationRef": "Example",
    "internalId": 99
  },
  "amount": 150.10,
  "currency": "GBP",
  "cardHolderName": "Frictionless Successful",
  "mobileNumber": 7999999999,
  "phoneCountryCode": 44,
  "emailAddress": "first.last@test.com",
  "shippingAddress": {
    "isBillingAddress": true
  },
  "threeDSecure": {
    "authenticationSource": "Browser",
    "methodNotificationUrl": "https://api-sandbox.judopay.com/order/3ds/methodNotification",
    "challengeNotificationUrl": "https://api-sandbox.judopay.com/order/3ds/challengeNotification",
    "challengeRequestIndicator": "noChallenge"
  }
}
```
:::

:::hint{type="warning"}
When testing a 3D Secure 2 **frictionless flow**, make sure the ChallengeRequestIndicator is **NOT&#x20;**&#x73;et to challengeAsMandate.
:::

***

### Successful Frictionless Scenarios

:::hint{type="info"}
To trigger specific **3D Secure 2 user journeys**, include the **cardHolderName&#x20;**&#x61;s specified in the [CardHolderName Table](docId\:BdCGiYQDm3mlE-UBxp1yR).
The **cardHolderName&#x20;**&#x69;s case sensitive and corresponds to an **expected transaction result**.
:::

***

**Frictionless Successful:**

:::::Tabs
:::Tab{title="Frictionless Successful"}
| **Card Type** | **CardHolderName**      | **Card Number**     | **Expiry Date** | **Start Date** | **CV2** | **Address**                                                      |
| ------------- | ----------------------- | ------------------- | --------------- | -------------- | ------- | ---------------------------------------------------------------- |
| Visa          | Frictionless Successful | 4976 0000 0000 3436 | 12/30           | 11/20          | 452     | 32 Mulberry Street,<br />Eastfort,<br />Violetdell<br />VL14 8PA |
:::

:::Tab{title="Expected Outcome*"}
The 3D Secure 2 flow will retur&#x6E;**&#x20;conditional steps** should additional information be required from the consumer.

- In response to the initial call:
  - First Response:**&#x20;Device Details**
- No additional information is required:
  - Second Response: **Receipt**
:::

::::Tab{title="Example Response: Step One"}
**Step One: Initial request -> Device Details response:**

:::BlockQuote
\{ &#x20;
&#x20; "methodUrl":"https\://test.portal.gpwebpay.com/ paysim/sim/acs", &#x20;
&#x20; "version": "2.2.0", &#x20;
&#x20; "receiptId": "933044681309327360", &#x20;
&#x20; "result": "Additional device data is needed for 3D Secure 2", &#x20;
&#x20; "message": "Issuer ACS has requested additional device data gathering",&#x20;
&#x20; "md" "ewogICJ0aHJlZURTU2VydmVyVHJh"&#x20;
}
:::
::::

::::Tab{title="Example Response: Step Two"}
**Step Two: Receipt response:**

:::BlockQuote
\{ &#x20;
&#x20;   "receiptId": "933048235499622400", &#x20;
&#x20;   "yourPaymentReference": "df11021c-7435-4894-8eb2a", &#x20;
&#x20;   "type": "Payment", &#x20;
&#x20;   "createdAt": "2023-01-18T17:20:34.5486+00:00", &#x20;
&#x20;   "result": "Success", &#x20;
&#x20;   "message": "AuthCode: 150", &#x20;
&#x20;   "judoId": 100502814, &#x20;
&#x20;   "merchantName":  "Test Merchant",&#x20;
&#x20;   "appearsOnStatementAs":  "Test Merchant",&#x20;
&#x20;   "originalAmount": "150.10", &#x20;
&#x20;   "netAmount": "150.10", &#x20;
&#x20;   "amount": "150.10", &#x20;
&#x20;   "currency": "GBP", &#x20;
&#x20;   "acquirerTransactionId": "7017269349", &#x20;
&#x20;   "externalBankResponseCode": "0", &#x20;
&#x20;   "cardDetails":  \{ &#x20;
&#x20;       "cardLastfour": "3436", &#x20;
&#x20;       "endDate": "1230", &#x20;
&#x20;       "cardToken": "SOF-jUB--6lcSFKEIePAvizxvA", &#x20;
&#x20;       "cardType": 1, &#x20;
&#x20;       "cardScheme": "VISA", &#x20;
&#x20;       "cardFunding": "Credit", &#x20;
&#x20;       "cardCategory": "", &#x20;
&#x20;       "cardCountry": "US", &#x20;
&#x20;       "bank": "JPMORGAN CHASE BANK, N.A." &#x20;
&#x20;       }, &#x20;
&#x20;   "billingAddress":  \{ &#x20;
&#x20;       "address1": "32 Mulberry Street",
&#x20;       "address2": "Eastfort",
&#x20;       "town": "Violetdell",
&#x20;       "postCode": "VL14 8PA",
&#x20;       "countryCode": 826
&#x20;    },
&#x20;       }, &#x20;
&#x20;   "consumer":  \{ &#x20;
&#x20;       "yourConsumerReference": "3ds2 test-1" &#x20;
&#x20;       }, &#x20;
&#x20;   "threeDSecure":  \{ &#x20;
&#x20;       "attempted": true, &#x20;
&#x20;       "result": "PASSED" &#x20;
&#x20;       }, &#x20;
&#x20;   "risks":  \{ &#x20;
&#x20;       "postCodeCheck": "UNKNOWN", &#x20;
&#x20;       "cv2Check": "UNKNOWN", &#x20;
&#x20;       "eciIndicator": "05" &#x20;
&#x20;       }&#x20;
}
:::
::::
:::::

***

**Frictionless NoMethod:**

:::::Tabs
:::Tab{title="Frictionless NoMethod"}
| **Card Type** | **CardHolderName**    | **Card Number**     | **Expiry Date** | **Start Date** | **CV2** | **Address**                                                 |
| ------------- | --------------------- | ------------------- | --------------- | -------------- | ------- | ----------------------------------------------------------- |
| Visa          | Frictionless NoMethod | 4921 8100 0000 5462 | 12/30           | 11/20          | 441     | 11 Jackson Close,<br />Stoneden,<br />Wildefay<br />WL2 7DQ |
:::

:::Tab{title="Expected Outcome*"}
The 3D Secure 2 flow will retur&#x6E;**&#x20;conditional steps** should additional information be required from the consumer.

- In response to the initial call, no additional information is required:
  - First Response: **Receipt**


:::

::::Tab{title="Example Response: Step One"}
**Step One: Receipt response:**

:::BlockQuote
&#x20;\{  &#x20;
&#x20;   "receiptId": "933048235499622400", &#x20;
&#x20;   "yourPaymentReference": "df11021c-7435-4894-8eb2a", &#x20;
&#x20;   "type": "Payment", &#x20;
&#x20;   "createdAt": "2023-01-18T17:20:34.5486+00:00", &#x20;
&#x20;   "result": "Success", &#x20;
&#x20;   "message": "AuthCode: 150", &#x20;
&#x20;   "judoId": 100502814, &#x20;
&#x20;   "merchantName":  "Test Merchant", &#x20;
&#x20;   "appearsOnStatementAs":  "Test Merchant", &#x20;
&#x20;   "originalAmount": "150.10", &#x20;
&#x20;   "netAmount": "150.10", &#x20;
&#x20;   "amount": "150.10", &#x20;
&#x20;   "currency": "GBP", &#x20;
&#x20;   "acquirerTransactionId": "7017269349", &#x20;
&#x20;   "externalBankResponseCode": "0", &#x20;
&#x20;   "cardDetails":  \{ &#x20;
&#x20;       "cardLastfour": "5462", &#x20;
&#x20;       "endDate": "1230", &#x20;
&#x20;       "cardToken": "SOF-jUB--6lcSFKEIePAvizxvA", &#x20;
&#x20;       "cardType": 1, &#x20;
&#x20;       "cardScheme": "VISA", &#x20;
&#x20;       "cardFunding": "Credit", &#x20;
&#x20;       "cardCategory": "", &#x20;
&#x20;       "cardCountry": "US", &#x20;
&#x20;       "bank": "JPMORGAN CHASE BANK, N.A." &#x20;
&#x20;       }, &#x20;
&#x20;   "billingAddress":  \{
&#x20;       "address1": "11 Jackson Close",
&#x20;       "address2": "Stoneden",
&#x20;       "town": "Wildefay",
&#x20;       "postCode": "WL2 7DQ",
&#x20;       "countryCode": 826
&#x20; },
&#x20;   "consumer":  \{ &#x20;
&#x20;       "yourConsumerReference": "3ds2 test-1" &#x20;
&#x20;       }, &#x20;
&#x20;   "threeDSecure":  \{ &#x20;
&#x20;       "attempted": true, &#x20;
&#x20;       "result": "PASSED" &#x20;
&#x20;       }, &#x20;
&#x20;   "risks":  \{ &#x20;
&#x20;       "postCodeCheck": "UNKNOWN", &#x20;
&#x20;       "cv2Check": "UNKNOWN", &#x20;
&#x20;       "eciIndicator": "05" &#x20;
&#x20;       }&#x20;
:::

&#x20;
::::
:::::

**\*The expected outcome** shows the **conditional steps** within the 3DS 2 flow.&#x20;
Depending on how you are integrating with Judopay, you may only see the receipt or error response.&#x20;
For example, if you are using Judopay's front end / UI SDK, this will handle the conditional steps on your behalf.&#x20;

:::hint{type="warning"}
You will not see the conditional **device details check** step, as this occurs in the background.
:::

It is useful to have an understanding of the full 3DS 2 payment flow, including the conditional steps, to verify how it relates to the user journey in your app.&#x20;

For more information on the 3DS 2 flow, see:

- [Overview of the Frictionless and Challenge Flows](docId\:K7FnZbol73SsCtbct4NXM).

***

### Unsuccessful Frictionless Scenarios

**Frictionless AuthNotSuccess:**

:::::Tabs
:::Tab{title="Frictionless AuthNotSuccess"}
| **Card Type** | **CardHolderName**          | **Card Number**         | **Expiry Date** | **Start Date** | **CV2** | **Address**                                                 |
| ------------- | --------------------------- | ----------------------- | --------------- | -------------- | ------- | ----------------------------------------------------------- |
| Visa          | Frictionless AuthNotSuccess | 422169 0000004963<br /> | 12/30           | 11/20          | 125     | 274 Grove Street,<br />Rayvale,<br />Vertland<br />VT22 6JN |


:::

:::Tab{title="Expected Outcome*"}
The 3D Secure 2 flow will retur&#x6E;**&#x20;conditional steps** should additional information be required from the consumer.

- In response to the initial call:
  - First Response:**&#x20;Device Details**
- In response to the call made to `/resume3ds`
  - Error code **177**: Authentication was attempted but failed due to Issuer response.
:::

::::Tab{title="Example Response: Step One"}
**Step One: Initial request -> Device Details response:**

:::BlockQuote
\{ &#x20;
&#x20; "methodUrl":"https\://test.portal.gpwebpay.com/ paysim/sim/acs", &#x20;
&#x20; "version": "2.2.0", &#x20;
&#x20; "receiptId": "933044681309327360", &#x20;
&#x20; "result": "Additional device data is needed for 3D Secure 2", &#x20;
&#x20; "message": "Issuer ACS has requested additional device data gathering",&#x20;
&#x20; "md" "ewogICJ0aHJlZURTU2VydmVyVHJh"&#x20;
}
:::
::::

::::Tab{title="Example Error Response"}
**Error response:**

:::BlockQuote
\{
&#x20; "message": "Authentication was attempted but failed due to Issuer response.",
&#x20; "code": 177,
&#x20; "category": 4
}
:::
::::
:::::

***

**Frictionless AuthFailed:**

:::::Tabs
:::Tab{title="Frictionless AuthFailed"}
| **Card Type** | **CardHolderName**      | **Card Number**   | **Expiry Date** | **Start Date** | **CV2** | **Address**                                                |
| ------------- | ----------------------- | ----------------- | --------------- | -------------- | ------- | ---------------------------------------------------------- |
| Visa          | Frictionless AuthFailed | 492181 0000009076 | 12/30           | 11/20          | 875     | 4 Laurel Drive,<br />Prywynne,<br />Swynbeach<br />SY7 0JB |



***
:::

:::Tab{title="Expected Outcome*"}
The 3D Secure 2 flow will retur&#x6E;**&#x20;conditional steps** should additional information be required from the consumer.

- In response to the initial call:
  - First Response:**&#x20;Device Details**
- In response to the call made to `/resume3ds`
  - Error code **165**: Unable to process transaction. Card authentication failed with 3DS Server.
:::

::::Tab{title="Example Response: Step One"}
**Step One: Initial request -> Device Details response:**

:::BlockQuote
\{ &#x20;
&#x20; "methodUrl":"https\://test.portal.gpwebpay.com/ paysim/sim/acs", &#x20;
&#x20; "version": "2.2.0", &#x20;
&#x20; "receiptId": "933044681309327360", &#x20;
&#x20; "result": "Additional device data is needed for 3D Secure 2", &#x20;
&#x20; "message": "Issuer ACS has requested additional device data gathering",&#x20;
&#x20; "md" "ewogICJ0aHJlZURTU2VydmVyVHJh"&#x20;
}
:::
::::

::::Tab{title="Example Error Response"}
**Error response:**

:::BlockQuote
\{
&#x20; "message": "Unable to process transaction. Card authentication failed with 3DS
&#x20;  Server.",
&#x20; "code": 165,
&#x20; "category": 4
}
:::

&#x20;
::::
:::::

**Frictionless IssuerReject:**

:::::Tabs
:::Tab{title="Frictionless IssuerReject"}
| **Card Type** | **CardHolderName**        | **Card Number**   | **Expiry Date** | **Start Date** | **CV2** | **Address**                                                 |
| ------------- | ------------------------- | ----------------- | --------------- | -------------- | ------- | ----------------------------------------------------------- |
| Visa          | Frictionless IssuerReject | 4792840 000009202 | 12/30           | 11/20          | 654     | 9 Pearl Street,<br />Dracmeadow,<br />Byhedge<br />BH11 9BB |


:::

:::Tab{title="Expected Outcome*"}
The 3D Secure 2 flow will retur&#x6E;**&#x20;conditional steps** should additional information be required from the consumer.

- In response to the initial call:
  - First Response:**&#x20;Device Details**
- In response to the call made to `/resume3ds`
  - Error code **186**: Authentication rejected by the Issuer as card used is flagged as stolen.
:::

::::Tab{title="Example Response: Step One"}
**Step One: Initial request -> Device Details response:**

:::BlockQuote
\{ &#x20;
&#x20; "methodUrl":"https\://test.portal.gpwebpay.com/ paysim/sim/acs", &#x20;
&#x20; "version": "2.2.0", &#x20;
&#x20; "receiptId": "933044681309327360", &#x20;
&#x20; "result": "Additional device data is needed for 3D Secure 2", &#x20;
&#x20; "message": "Issuer ACS has requested additional device data gathering",&#x20;
&#x20; "md" "ewogICJ0aHJlZURTU2VydmVyVHJh"&#x20;
}
:::
::::

::::Tab{title="Example Error Response"}
**Error response:**

:::BlockQuote
\{
&#x20; "message": "Authentication rejected by the Issuer as card used is flagged as
&#x20;  stolen.",
&#x20; "code": 186,
&#x20; "category": 4
}
:::

&#x20;
::::
:::::

***

**Frictionless AuthenticationError:**

:::::Tabs
:::Tab{title="Frictionless AuthenticationError"}
| **Card Type** | **CardHolderName**               | **Card Number**   | **Expiry Date** | **Start Date** | **CV2** | **Address**                                                 |
| ------------- | -------------------------------- | ----------------- | --------------- | -------------- | ------- | ----------------------------------------------------------- |
| Visa          | Frictionless AuthenticationError | 4921810 000005850 | 12/30           | 11/20          | 217     | 54 Madison Avenue,<br />Aldapple,<br />Rayland<br />RL5 0HA |
:::

:::Tab{title="Expected Outcome*"}


The 3D Secure 2 flow will retur&#x6E;**&#x20;conditional steps** should additional information be required from the consumer.

- In response to the initial call:
  - First Response:**&#x20;Device Details**
- In response to the call made to `/resume3ds`
  - Error code **182**: Unable to authenticate transaction as card authentication has failed.
:::

::::Tab{title="Example Response: Step One"}
**Step One: Initial request -> Device Details response:**

:::BlockQuote
\{ &#x20;
&#x20; "methodUrl":"https\://test.portal.gpwebpay.com/ paysim/sim/acs", &#x20;
&#x20; "version": "2.2.0", &#x20;
&#x20; "receiptId": "933044681309327360", &#x20;
&#x20; "result": "Additional device data is needed for 3D Secure 2", &#x20;
&#x20; "message": "Issuer ACS has requested additional device data gathering",&#x20;
&#x20; "md" "ewogICJ0aHJlZURTU2VydmVyVHJh"&#x20;
}
:::
::::

::::Tab{title="Example Error Response"}
**Error response:**

:::BlockQuote
\{
&#x20; "message": "Unable to authenticate transaction as card authentication has
&#x20;  failed.",
&#x20; "code": 182,
&#x20; "category": 4
}
:::

&#x20;
::::
:::::

**\*The expected outcome** shows the **conditional steps** within the 3DS 2 flow.&#x20;
Depending on how you are integrating with Judopay, you may only see the receipt or error response.&#x20;
For example, if you are using Judopay's front end / UI SDK, this will handle the conditional steps on your behalf.&#x20;

:::hint{type="warning"}
You will not see the conditional **device details check** step, as this occurs in the background.
:::

It is useful to have an understanding of the full 3DS 2 payment flow, including the conditional steps, to verify how it relates to the user journey in your app.&#x20;

For more information on the 3DS 2 flow, see:

- [Overview of the Frictionless and Challenge Flows](docId\:K7FnZbol73SsCtbct4NXM).

***

## Testing a Challenge 3D Secure 2 Flow

:::hint{type="info"}
To trigger specific **3D Secure 2 user journeys**, include the **cardHolderName&#x20;**&#x61;s specified in the [CardHolderName Table](docId\:BdCGiYQDm3mlE-UBxp1yR).
The **cardHolderName&#x20;**&#x69;s case sensitive and corresponds to an **expected transaction result**.
:::

**Challenge Required:&#xD;**&#xA;**&#xD;**

:::::Tabs
:::Tab{title="Challenge Required"}
| **Card Type** | **CardHolderName** | **Card Number**   | **Expiry Date** | **Start Date** | **CV2** | **Address**                                                 |
| ------------- | ------------------ | ----------------- | --------------- | -------------- | ------- | ----------------------------------------------------------- |
| Visa          | Challenge Required | 4792840 000009202 | 12/30           | 11/20          | 654     | 9 Pearl Street,<br />Dracmeadow,<br />Byhedge<br />BH11 9BB |
:::

:::Tab{title="Expected Outcome*"}
The 3D Secure 2 flow will retur&#x6E;**&#x20;conditional steps** should additional information be required from the consumer.

- In response to the initial call:
  - First Response:**&#x20;Device Details**
- In response to the call made to `/resume3ds`
  - Second Response: **Challenge**
- In response to the call made to `/complete3ds`
  - Third Response:**&#x20;Receipt**
:::

::::Tab{title="Example Response: Step One"}
**Step One: Initial request -> Device Details response:**

:::BlockQuote
\{ &#x20;
&#x20; "methodUrl":"https\://test.portal.gpwebpay.com/ paysim/sim/acs", &#x20;
&#x20; "version": "2.2.0", &#x20;
&#x20; "receiptId": "933044681309327360", &#x20;
&#x20; "result": "Additional device data is needed for 3D Secure 2", &#x20;
&#x20; "message": "Issuer ACS has requested additional device data gathering",&#x20;
&#x20; "md" "ewogICJ0aHJlZURTU2VydmVyVHJh"&#x20;
}
:::
::::

::::Tab{title="Example Response: Step Two"}
**Step Two:&#x20;**[Resume 3ds2 request](https://docs.judopay.com/api-reference/index.html#/3DSecure/put_transactions__receiptId__resume3ds)**&#x20;-> Challenge Required response:**

:::BlockQuote
\{ &#x20;
&#x20;   "challengeUrl": "https\://acs2p.test.gpe.cz/challenge", &#x20;
&#x20;   "cReq": "ewogICJtZXNzYWdlVHlwZSIgOi", &#x20;
&#x20;   "version": "2.1.0", &#x20;
&#x20;   "receiptId": "933047860931497984", &#x20;
&#x20;   "result": "Challenge completion is needed for 3D Secure 2", &#x20;
&#x20;   "message": "Issuer ACS has responded with a Challenge URL", &#x20;
&#x20;   "md": "ewogICJ0aHJlZURTU2VydmVyVHJhb"&#x20;
}
:::
::::

::::Tab{title="Example Response: Step Three"}
**Step Three:&#x20;**[Complete 3ds2 request](https://docs.judopay.com/api-reference/index.html#/3DSecure/put_transactions__receiptId__complete3ds)**&#x20;-> Receipt response:**

:::BlockQuote
\{ &#x20;
&#x20;   "receiptId": "933048235499622400", &#x20;
&#x20;   "yourPaymentReference": "df11021c-7435-4894-8eb2a", &#x20;
&#x20;   "type": "Payment", &#x20;
&#x20;   "createdAt": "2023-01-18T17:20:34.5486+00:00", &#x20;
&#x20;   "result": "Success", &#x20;
&#x20;   "message": "AuthCode: 150", &#x20;
&#x20;   "judoId": 100502814, &#x20;
&#x20;   "merchantName": "Test Merchant", &#x20;
&#x20;   "appearsOnStatementAs": "Test Merchant", &#x20;
&#x20;   "originalAmount": "150.10", &#x20;
&#x20;   "netAmount": "150.10", &#x20;
&#x20;   "amount": "150.10", &#x20;
&#x20;   "currency": "GBP", &#x20;
&#x20;   "acquirerTransactionId": "7017269349", &#x20;
&#x20;   "externalBankResponseCode": "0", &#x20;
&#x20;   "cardDetails":  \{ &#x20;
&#x20;       "cardLastfour": "3436", &#x20;
&#x20;       "endDate": "1230", &#x20;
&#x20;       "cardToken": "SOF-jUB--6lcSFKEIePAvizxvA", &#x20;
&#x20;       "cardType": 1, &#x20;
&#x20;       "cardScheme": "VISA", &#x20;
&#x20;       "cardFunding": "Credit", &#x20;
&#x20;       "cardCategory": "", &#x20;
&#x20;       "cardCountry": "US", &#x20;
&#x20;       "bank": "JPMORGAN CHASE BANK, N.A." &#x20;
&#x20;       }, &#x20;
&#x20;   "billingAddress":  \{ &#x20;
&#x20;      "address1": "32 Mulberry Street", &#x20;
&#x20;      "address2": "Eastfort",
&#x20;      "town": "Violetdell",
&#x20;      "postCode": "VL14 8PA",
&#x20;      "countryCode": 826
&#x20;       }, &#x20;
&#x20;   "consumer":  \{ &#x20;
&#x20;       "yourConsumerReference": "3ds2 test-1" &#x20;
&#x20;       }, &#x20;
&#x20;   "threeDSecure":  \{ &#x20;
&#x20;       "attempted": true, &#x20;
&#x20;       "result": "PASSED" &#x20;
&#x20;       }, &#x20;
&#x20;   "risks":  \{ &#x20;
&#x20;       "postCodeCheck": "UNKNOWN", &#x20;
&#x20;       "cv2Check": "UNKNOWN", &#x20;
&#x20;       "eciIndicator": "05" &#x20;
&#x20;       }&#x20;
}
:::

&#x20;
::::
:::::

**\*The expected outcome** shows the **conditional steps** within the 3DS 2 flow.&#x20;
Depending on how you are integrating with Judopay, you may only see the receipt or error response.&#x20;
For example, if you are using Judopay's front end / UI SDK, this will handle the conditional steps on your behalf.&#x20;

:::hint{type="warning"}
You will not see the conditional **device details check** step, as this occurs in the background.
:::

It is useful to have an understanding of the full 3DS 2 payment flow, including the conditional steps, to verify how it relates to the user journey in your app.&#x20;

- For more information on the 3DS 2 flow, see [Overview of the Frictionless and Challenge Flows](docId\:K7FnZbol73SsCtbct4NXM).
- For a list of possible error codes, types and descriptions, see [Codes and Descriptions](docId:_zrsihomUEW-XnRQ4PBtJ).

