---
title: "Validate a JWT for 3DS Client SDK"
method: POST
path: "/v2/jwt/validate"
tags: ["V2"]
---

# Validate a JWT for 3DS Client SDK

`POST /v2/jwt/validate`

The API validates the JSON Web Token (JWT) and returns the consumer authentication outcome to the merchant.

## Request body

- Model7
  - `authentication_id` string, required — Authentication ID for completing the 3D Secure flow. To complete the transaction, the value is required to be passed on the Authenticate message to link the Lookup and Authenticate message together.
  - `jwt` string, required — JWT with authentication details.
  - `threeds_contract_id` string, required — The ID of the threeDSContractId used.

## Response `201`

Created

- Model8
  - `authentication_id` string, required — Authentication ID for completing the 3D Secure flow. To complete the transaction, the value is required to be passed on the Authenticate message to link the Lookup and Authenticate message together.
  - `action_code` string, required — The resulting state of the transaction
  - `error_no` string, required — Application error number(s). A non-zero value represents the error encountered while attempting to process the message request. NOTE: Multiple error numbers are separated by a comma.
  - `error_desc` string, required — Application error description for the associated error number(s). NOTE: Multiple error descriptions are separated by a comma.
  - `validation_result` ValidationResult
    - `authorization_payload` string — The Base64 encoded JSON Payload of CB specific Authorization Values returned in the Frictionless Flow.
    - `cavv` string, required — Cardholder Authentication Verification Value (CAVV). This value should be appended to the authorization message signifying that the transaction has been successfully authenticated. It will be encoded according to the Merchant's configuration in either Base64 encoding or Hex encoding. A Base64 encoding Merchant configuration will produce values of 28 or 32 characters. A Hex encoding Merchant configuration will produce values of 40 or 48 characters. The value when decoded will either be 20 bytes for CAVV.
    - `cavv_algorithm` string — Indicates the algorithm used to generate the CAVV value. Possible Values: <br> 2 - CVV with ATN 3 - Mastercard SPA algorithm
    - `eci_flag` string, required — Electronic Commerce Indicator (ECI). The ECI value is part of the 2 data elements that indicate the transaction was processed electronically. This should be passed on the authorization transaction to the Gateway/Processor. Possible Values: 02 or 05 - Fully Authenticated Transaction 01 or 06 - Attempted Authentication Transaction 00 or 07 - Non 3D Secure Transaction Mastercard - 02, 01, 00 VISA - 05, 06, 07 AMEX - 05, 06, 07 JCB - 05, 06, 07 DINERS CLUB - 05, 06, 07 NOTE: 3DS 2.0 field
    - `enrolled` string, required — Status of Authentication eligibility. <br> Possible Values: <br> Y - Yes, Bank is participating in 3D Secure protocol and will return the ACSUrl <br> N - No, Bank is not participating in 3D Secure protocol <br> U - Unavailable, The DS or ACS is not available for authentication at the time of the request <br> B - Bypass, Merchant authentication rule is triggered to bypass authentication in this use case <br> NOTE: If the Enrolled value is NOT Y, then the Consumer is NOT eligible for Authentication. <br>
    - `pares_status` string, required — Transactions status result identifier. Possible Values: Y - Successful Authentication N - Failed Authentication U - Unable to Complete Authentication A - Successful Attempts Transaction C - Challenge Required for Authentication R - Authentication Rejected (Merchant must not submit for authorization) NOTE: Statuses of C and R only apply to Consumer Authentication 2.0.,
    - `reason_code` string — The error code indicating a problem with this transaction.
    - `reason_desc` string — Text and additional detail about the error for this transaction. NOTE: This field concatenates the errorDescription and errorDetail from the authentication response message
    - `signature_verification` string, required — Transaction Signature status identifier. Possible Values: Y - Indicates that the signature of the PARes has been validated successfully and the message contents can be trusted. N - Indicates that the PARes could not be validated. This result could be for a variety of reasons; tampering, certificate expiration, etc., and the result should not be trusted.
    - `xid` string, required — Third Party Token that is returned from the token provider after a card number is specified on the request. NOTE: This field is returned if Tokenization is enabled in the Merchant profile setting AND the Merchant is using a third party token provider.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `500` — Internal Server Error
- `504` — Gateway Time-out

---

[API](https://skmtc.dev/westpac/apis/checkout-api.md) · [All operations](https://skmtc.dev/westpac/apis/checkout-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/westpac/checkout-api/revisions/97b34ca7df9a/schema)
