# Antom 3DS-Retry

> Antom 3DS-Retry intelligently and automatically handles transactions that are soft-declined due to reasons such as incomplete 3DS authentication.

 Antom 3DS-Retry intelligently and automatically handles transactions that are soft-declined due to reasons such as incomplete 3DS authentication. Through built-in strategies, it automatically re-initiates 3DS authentication for eligible transactions at the appropriate time, effectively recovering payment opportunities and improving overall conversion rates. Whether you initially enabled 3DS authentication or not, this feature can restore transactions requiring authentication, reducing the risk of declines caused by missing authentication.

 To enable Antom 3DS-Retry, simply set the     *enableAuthenticationUpgrade*     parameter to   `true`   when initiating a transaction. If this feature is not enabled, card schemes may decline transactions as high-risk when 3DS authentication is mandatory but not performed. Once enabled, Antom will automatically attempt to recover such transactions without requiring additional action from you.

 > **[INFO]** **Note**    : Only cards supporting   [3D Secure 2](https://docs.antom.com/ac/pm/3ds.md)   can enable Antom 3DS-Retry.

 [Antom's 3DS](https://docs.antom.com/ac/pm/3ds.md)   and 3DS-Retry feature collectively determine whether a transaction ultimately undergoes 3DS authentication. The table below illustrates the impact of these settings on transactions:

 | **Set 3DS authentication:** ***is3DSAuthentication*** | **Set Antom 3DS-Retry:** ***enableAuthenticationUpgrade*** | **Whether 3DS authentication is performed** |
| --- | --- | --- |
| `false`  /Leave empty | `true`  /Leave empty | Initiates a non-3DS transaction first. If the transaction is soft-declined due to missing 3DS authentication, Antom automatically upgrades it to a 3DS transaction and retries the payment. |
| `false`  /Leave empty | `false` | Initiates a non-3DS transaction. If the transaction fails, Antom directly returns a failure result without retrying. |
| `true` | `true`  /  `false`  /Leave empty | Always initiates a 3DS transaction. |

## Payment flow {#wtIyv}

 The figure below illustrates the payment flow with Antom 3DS-Retry enabled:

 ![](https://idocs-assets.marmot-cloud.com/storage/idocs87c36dc8dac653c1/yuque/idocs/2026/png/d5cfb456-93c6-47a0-9f2d-c49972fba66c.png)

 1. The merchant submits a payment request.
2. If the payment is soft-declined due to reasons such as incomplete 3DS authentication, Antom 3DS-Retry will intelligently decide and retry the payment.
3. If Antom's automatic retry is successful, a successful payment result will be returned to you.

## How to enable {#NoqIv}

<!-- TabGroup -->

**Tab: Payment Element integration**

When calling the   [**createPaymentSession (One-time Payments)**](https://docs.antom.com/ac/ams/session_cashier.md)   API, set the     *availablePaymentMethod.paymentMethodMetaData.enableAuthenticationUpgrade*     parameter to   `true`   or leave it as the default value to enable Antom 3DS-Retry.

 ```json
{
  ...
  "availablePaymentMethod": {
    "paymentMethodMetaData": {
      "enableAuthenticationUpgrade": true
    }
  },  
  ...
}

```

**Tab: Checkout Page integration**

When calling the   [**createPaymentSession (One-time Payments)**](https://docs.antom.com/ac/ams/session_cashier.md)   API, set the     *availablePaymentMethod.paymentMethodMetaData.enableAuthenticationUpgrade*     parameter to   `true`   or leave it as the default value to enable Antom 3DS-Retry.

 ```json
{
  ...
  "availablePaymentMethod": {
    "paymentMethodMetaData": {
      "enableAuthenticationUpgrade": true
    }
  },  
  ...
}

```

**Tab: Hosted card integration**

When calling the   [**pay (One-time Payments)**](https://docs.antom.com/ac/ams/payment_cashier.md)   API, set the     *paymentMethod.paymentMethodMetaData.enableAuthenticationUpgrade*     parameter to   `true`   or leave it as the default value to enable Antom 3DS-Retry.

 ```json
{
  ...
  "paymentMethod": {
    "paymentMethodMetaData": {
      "enableAuthenticationUpgrade": true
    }
  },  
  ...
}
```

 > **[INFO]** **Note**    : After enabling Antom 3DS-Retry, if you set the     *is3DSAuthentication*     parameter to   `false`   or leave it as the default value (specify the transaction as a non-3DS transaction), in the stored card payment scenario, the   [**pay (One-time Payments)**](https://docs.antom.com/ac/ams/payment_cashier.md)   API will return a     *normalUrl*     corresponding to the card information collection page. Under this configuration, even if the transaction is specified as non-3DS, if the issuer declines the payment after the buyer submits it, the buyer may still be redirected to a 3DS URL for verification instead of directly receiving the final transaction result (success or failure). If you need to disable Antom 3DS-Retry in this scenario, set     *paymentMethod.paymentMethodMetaData.enableAuthenticationUpgrade*     to   `false`  . The example code is as follows:

 ```json
{
  ...
  "paymentMethod": {
    "paymentMethodMetaData": {
      "is3DSAuthentication": false,
      "enableAuthenticationUpgrade": false
    }
  },  
  ...
}
```

**Tab: Server-to-server card integration**

When calling the   [**pay (One-time Payments)**](https://docs.antom.com/ac/ams/payment_cashier.md)   API, set the     *paymentMethod.paymentMethodMetaData.enableAuthenticationUpgrade*     parameter to   `true`   or leave it as the default value to enable Antom 3DS-Retry.

 ```json
{
  ...
  "paymentMethod": {
    "paymentMethodMetaData": {
      "cvv": "111",
      "expiryMonth": "12",
      "expiryYear": "29",
      "cardNo": "49************75",
      "enableAuthenticationUpgrade": true
    }
  },  
  ...
}
```

 > **[INFO]** **Note**    : After enabling Antom 3DS-Retry, if you set the     *is3DSAuthentication*     parameter to   `false`   or leave it as the default value (specify the transaction as a non-3DS transaction), the   [**pay (One-time Payments)**](https://docs.antom.com/ac/ams/payment_cashier.md)   API may return a     *normalUrl*     requiring the buyer to redirect to a 3DS URL for verification, instead of directly returning the final transaction result (success or failure). If you need to disable Antom 3DS-Retry in this scenario, set     *paymentMethod.paymentMethodMetaData.enableAuthenticationUpgrade*     to   `false`  . The example code is as follows:

 ```json
{
  ...
  "paymentMethod": {
    "paymentMethodMetaData": {
      "is3DSAuthentication": false,
      "enableAuthenticationUpgrade": false
    }
  },  
  ...
}
```

<!-- /TabGroup -->