# Merchant-Initiated Transaction (MIT)

> In this page, you can learn about what MIT is and how to enable it.

 Merchant-initiated transaction (MIT) refers to a scenario where a merchant, based on a pre-established agreement with the buyer, directly uses stored payment credentials to initiate subsequent charges without requiring the buyer's participation in each transaction. For example, if you operate a subscription service, after obtaining the buyer’s consent, you can automatically charge their stored credit card on a monthly basis. MIT transactions are highly efficient and convenient, enabling automatic payments without buyer involvement, while also eliminating the need for 3DS authentication, resulting in higher payment success rates. This method is suitable for various scenarios such as subscription renewals, recurring payments, and other use cases where direct buyer participation is not required.

 > **[INFO]** **Note**    : This feature is not available for payments initiated using specific local card schemes. Only   [card payments](https://docs.antom.com/payment_methods.md)   where the buyer country/region is "Global" can enable the MIT feature.

## How to enable {#Vov4Q}

 When you need to initiate payments without the buyer's direct participation, ensure your terms of service explicitly include the following:

 - Buyer authorization: The buyer agrees that you may initiate one or more payments on their behalf for specific transactions.
- Payment timing and frequency: Clearly specify the expected timing and frequency of payments (e.g., regular subscriptions, installment plans, or top-ups).
- Amount determination method: Explain how the amount for each payment is calculated.
- Cancellation policy: Define the rules for canceling subscription services.
- Agreement record keeping: Retain authorization records demonstrating each buyer’s consent to the terms.

<!-- TabGroup -->

**Tab: Payment Element integration**

### Step 1: Initiate the first CIT transaction {#IyWBb}

 When processing the first customer-initiated transaction (CIT), it is strongly recommended to initiate a   [3DS transaction](https://docs.antom.com/ac/pm/3ds.md)   to reduce the risk of card fraud. Simultaneously, guide the buyer to save the card on the Antom payment page, allowing Antom to securely store the card information automatically.

 > **[INFO]** **Note**    : Only if the buyer checks the "Save card for future payments" option can you use the stored card details to initiate subsequent MIT charges.

 You need to set     *tokenizeMode*     to   `ASKFORCONSENT`   to show the "save card" option and set     *is3DSAuthentication*     to   `true`   to enforce 3DS authentication in the   [**createPaymentSession (One-time Payments)**](https://docs.antom.com/ac/ams/session_cashier.md)   API:

 ```json
{
  ...
  "availablePaymentMethod": {
    "paymentMethodMetaData": {
      "tokenizeMode": "ASKFORCONSENT",
      "is3DSAuthentication": true
    }
  }
}
```

 If the buyer chooses to save the card information and the payment is successful, Antom will send asynchronous notifications to you via the   [**notifyPayment**](https://docs.antom.com/ac/ams/paymentrn_online.md)   API, which includes the     *cardToken*     and the     *networkTransactionId*     parameters.

### Step 2: Initiate MIT payments {#rKY11P}

 After completing the first CIT transaction and obtaining the     *cardToken*    , pass in the following parameters in the   [**pay (One-time Payments)**](https://docs.antom.com/ac/ams/payment_cashier.md)   API request to initiate MIT payment:

 | **Parameter name** | **Description** |
| --- | --- |
| *paymentMethodId* | The unique ID that is used to identify a payment method. The value of this parameter is that of     *cardToken*     obtained from the   [**notifyPayment**](https://docs.antom.com/ac/ams/paymentrn_online.md)   or   [**inquiryPayment**](https://docs.antom.com/ac/ams/paymentri_online.md)   API. |
| *recurringType* | The recurring type for the payment. Pass one of the following values based on your business scenario: - `SCHEDULED`  : indicates a regular automated deduction payment. - `UNSCHEDULED`  : indicates an irregular automated deduction payment. |
| *networkTransactionId* | Antom requires confirmation of buyer authorization for MIT. You must pass a unique ID here, which should be the same value returned by the    the   [**notifyPayment**](https://docs.antom.com/ac/ams/paymentrn_online.md)   or   [**inquiryPayment**](https://docs.antom.com/ac/ams/paymentri_online.md)   API    after the first successful CIT transaction. |
| *isCardOnFile* | Indicates whether the card used in this transaction has been previously processed and stored by the merchant. Set it to   `true`   in this scenario. |
| *paymentMethodType* | The payment method type. Set it to   `CARD`   for this scenario. |

 Below is an example code for calling the   [**pay (One-time Payments)**](https://docs.antom.com/ac/ams/payment_cashier.md)   API to initiate an MIT payment:

 ```json
"paymentMethod": {
  "paymentMethodMetaData": {
    "isCardOnFile": true,
    "recurringType": "SCHEDULED",
    "networkTransactionId": "referenceNetworkTransactionId12345"
  },
  "paymentMethodType": "CARD",
  "paymentMethodId": "ALIPAYgzViZySEK********2avs5dAgkzss/NrTymfnc/0+xI0ssHmyU3VyWCloE4MwfmN48sP1+rSPQ=="
}
```

**Tab: Checkout Page (CKP) integration**

### Step 1: Initiate the first CIT transaction {#I2yWBb}

 When processing the first customer-initiated transaction (CIT), it is strongly recommended to initiate a   [3DS transaction](https://docs.antom.com/ac/pm/3ds.md)   to reduce the risk of card fraud. Simultaneously, guide the buyer to save the card on the Antom payment page, allowing Antom to securely store the card information automatically.

 > **[INFO]** **Note**    : Only if the buyer checks the "Save card for future payments" option can you use the stored card details to initiate subsequent MIT charges.

 You need to set     *tokenizeMode*     to   `ASKFORCONSENT`   to show the "save card" option and set     *is3DSAuthentication*     to   `true`   to enforce 3DS authentication in the   [**createPaymentSession (One-time Payments)**](https://docs.antom.com/ac/ams/session_cashier.md)   API:

 ```json
{
  ...
  "availablePaymentMethod": {
    "paymentMethodMetaData": {
      "tokenizeMode": "ASKFORCONSENT",
      "is3DSAuthentication": true
    }
  }
}
```

 If the buyer chooses to save the card information and the payment is successful, Antom will send asynchronous notifications to you via the   [**notifyPayment**](https://docs.antom.com/ac/ams/paymentrn_online.md)   API, which includes the     *cardToken*     and the     *networkTransactionId*     parameters.

### Step 2: Initiate MIT payments {#r2KY11P}

 After completing the first CIT transaction and obtaining the     *cardToken*    , pass in the following parameters in the   [**pay (One-time Payments)**](https://docs.antom.com/ac/ams/payment_cashier.md)   API request to initiate MIT payment:

 | **Parameter name** | **Description** |
| --- | --- |
| *paymentMethodId* | The unique ID that is used to identify a payment method. The value of this parameter is that of     *cardToken*     obtained from the   [**notifyPayment**](https://docs.antom.com/ac/ams/paymentrn_online.md)   or   [**inquiryPayment**](https://docs.antom.com/ac/ams/paymentri_online.md)   API. |
| *recurringType* | The recurring type for the payment. Pass one of the following values based on your business scenario: - `SCHEDULED`  : indicates a regular automated deduction payment. - `UNSCHEDULED`  : indicates an irregular automated deduction payment. |
| *networkTransactionId* | Antom requires confirmation of buyer authorization for MIT. You must pass a unique ID here, which should be the same value returned by the    the   [**notifyPayment**](https://docs.antom.com/ac/ams/paymentrn_online.md)   or   [**inquiryPayment**](https://docs.antom.com/ac/ams/paymentri_online.md)   API    after the first successful CIT transaction. |
| *isCardOnFile* | Indicates whether the card used in this transaction has been previously processed and stored by the merchant. Set it to   `true`   in this scenario. |
| *paymentMethodType* | The payment method type. Set it to   `CARD`   for this scenario. |

 Below is an example code for calling the   [**pay (One-time Payments)**](https://docs.antom.com/ac/ams/payment_cashier.md)   API to initiate an MIT payment:

 ```json
"paymentMethod": {
  "paymentMethodMetaData": {
    "isCardOnFile": true,
    "recurringType": "SCHEDULED",
    "networkTransactionId": "referenceNetworkTransactionId12345"
  },
  "paymentMethodType": "CARD",
  "paymentMethodId": "ALIPAYgzViZySEK********2avs5dAgkzss/NrTymfnc/0+xI0ssHmyU3VyWCloE4MwfmN48sP1+rSPQ=="
}
```

**Tab: Hosted card integration**

### Step 1: Initiate the first CIT transaction or standalone card binding {#RkD4p}

 You can obtain the payment token (    *cardToken*    ) and transaction ID (    *networkTransactionId*    ) for subsequent MIT payments through one of the following two methods:

 - During the first customer-initiated transaction (CIT), it is strongly recommended to initiate a 3DS transaction to reduce the risk of card fraud, and guide the buyer to check the "Save card for future payments" option on the Antom payment page, allowing Antom to automatically complete the secure storage of card information. You need to set     *tokenizeMode*     to   `ASKFORCONSENT`   to show the "save card" option to the buyer and set     *is3DSAuthentication*     to   `true`   to initiate a 3DS transaction in the   [**pay (One-time Payments)**](https://docs.antom.com/ac/ams/payment_cashier.md)   API:

 > **[INFO]** **Note**    : Only if the buyer checks the "Save card for future payments" option can you use the stored card details to initiate subsequent MIT charges.

 ```json
"paymentMethod":
{
  "paymentMethodMetaData":
  {
    "is3DSAuthentication": true,
    "tokenizeMode": "ASKFORCONSENT"
  },
  "paymentMethodType": "CARD"
},
```

 - You can use Antom’s   [standalone card binding](https://docs.antom.com/ac/pm/cvsdk.md)   feature to securely store the buyer’s card information. It is also strongly recommended to initiate a   [3DS transaction](https://docs.antom.com/ac/pm/3ds.md)   to mitigate fraud risks. You need to set     *is3DSAuthentication*     to   `true`   to enforce 3DS authentication in the   [**createVaultingSession**](https://docs.antom.com/ac/ams/vaulting_session.md)   API.

 ```json
{
    "paymentMethodType": "CARD",
    "redirectUrl": "http://www.yourRedirectUrl.com",
    "vaultingNotificationUrl": "http://www.yourNotifyUrl.com",
    "vaultingRequestId": "4a17609d-1749-4f53-a2fb-8bdba8d5aad8"
}
```

 If the first CIT transaction is successful or the standalone card binding is completed successfully, Antom will send asynchronous notifications to you via the   [**notifyPayment**](https://docs.antom.com/ac/ams/paymentrn_online.md)   API, which includes the     *cardToken*     and the     *networkTransactionId*     parameters.

### Step 2: Initiate MIT payments {#BRbXR}

 After obtaining     *cardToken*     and     *networkTransactionId*    , pass in the following parameters in the   [**pay (One-time Payments)**](https://docs.antom.com/ac/ams/payment_cashier.md)   API request to initiate MIT payment:

 | **Parameter name** | **Description** |
| --- | --- |
| *paymentMethodId* | The unique ID that is used to identify a payment method. The value of this parameter is that of     *cardToken*     obtained from the   [**notifyPayment**](https://docs.antom.com/ac/ams/paymentrn_online.md)   or   [**inquiryPayment**](https://docs.antom.com/ac/ams/paymentri_online.md)   API. |
| *recurringType* | The recurring type for the payment. Pass one of the following values based on your business scenario: - `SCHEDULED`  : indicates a regular automated deduction payment. - `UNSCHEDULED`  : indicates an irregular automated deduction payment. |
| *networkTransactionId* | Antom requires confirmation of buyer authorization for MIT. You must pass a unique ID here, which should be the same value returned by the    the   [**notifyPayment**](https://docs.antom.com/ac/ams/paymentrn_online.md)   or   [**inquiryPayment**](https://docs.antom.com/ac/ams/paymentri_online.md)   API    after the first successful CIT transaction. |
| *isCardOnFile* | Indicates whether the card used in this transaction has been previously processed and stored by the merchant. Set it to   `true`   in this scenario. |
| *paymentMethodType* | The payment method type. Set it to   `CARD`   for this scenario. |

 Below is an example code for calling the   [**pay (One-time Payments)**](https://docs.antom.com/ac/ams/payment_cashier.md)   API to initiate an MIT payment:

 ```json
"paymentMethod": {
  "paymentMethodMetaData": {
    "isCardOnFile": true,
    "recurringType": "SCHEDULED",
    "networkTransactionId": "referenceNetworkTransactionId12345"
  },
  "paymentMethodType": "CARD",
  "paymentMethodId": "ALIPAYgzViZySEK********2avs5dAgkzss/NrTymfnc/0+xI0ssHmyU3VyWCloE4MwfmN48sP1+rSPQ=="
}
```

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

### Step 1: Initiate the first CIT transaction or standalone card binding {#sfHcf}

 You can obtain the payment token (    *cardToken*    ) and transaction ID (    *networkTransactionId*    ) for subsequent MIT payments through one of the following two methods:

 - During the first customer-initiated transaction (CIT), it is strongly recommended to initiate a 3DS transaction to reduce the risk of card fraud while allowing Antom to securely store the buyer’s card information.    You need to set     *tokenizeMode*     to   `ENABLED`   to enable Antom to store the card information and set     *is3DSAuthentication*     to   `true`   to enforce 3DS authentication in the   [**pay (One-time Payments)**](https://docs.antom.com/ac/ams/payment_cashier.md)   API:

 ```json
"paymentMethod":
{
  "paymentMethodMetaData":
  {
    "cvv": "682",
    "expiryMonth": "11",
    "expiryYear": "28",
    "cardNo": "4112********9954",
    "is3DSAuthentication": true,
    "tokenizeMode": "ENABLED"
  },
  "paymentMethodType": "CARD"
},
```

 - You can use Antom’s   [standalone card binding](https://docs.antom.com/ac/pm/cv.md)   feature to securely store the buyer’s card information. It is also strongly recommended to initiate a   [3DS transaction](https://docs.antom.com/ac/pm/3ds.md)   to mitigate fraud risks. You need to set     *is3DSAuthentication*     to   `true`   to enforce 3DS authentication in the   [**vaultPaymentMethod**](https://docs.antom.com/ac/ams/vault_method.md)   API.

 ```json
"paymentMethodDetail": {
  "paymentMethodType": "CARD",
  "card": {
    "cardNo": "411227*****8764",
    "brand": "VISA",
    "cardholderName": {
      "firstName": "***",
      "middleName": "***",
      "lastName": "***",
      "fullName": "x*******e"
    },
    "cvv": "123",
    "expiryYear": "26",
    "expiryMonth": "08",
    "is3DSAuthentication": "true"
  }
}
```

 If the first CIT transaction is successful or the standalone card binding is completed successfully, Antom will send asynchronous notifications to you via the   [**notifyPayment**](https://docs.antom.com/ac/ams/paymentrn_online.md)   API, which includes the     *cardToken*     and the     *networkTransactionId*     parameters.

### Step 2: Initiate MIT payments {#AWqQW}

 After obtaining     *cardToken*     and     *networkTransactionId*    , pass in the following parameters in the   [**pay (One-time Payments)**](https://docs.antom.com/ac/ams/payment_cashier.md)   API request to initiate MIT payment:

 | **Parameter name** | **Description** |
| --- | --- |
| *paymentMethodId* | The unique ID that is used to identify a payment method. The value of this parameter is that of     *cardToken*     obtained from the   [**notifyPayment**](https://docs.antom.com/ac/ams/paymentrn_online.md)   or   [**inquiryPayment**](https://docs.antom.com/ac/ams/paymentri_online.md)   API. |
| *recurringType* | The recurring type for the payment. Pass one of the following values based on your business scenario: - `SCHEDULED`  : indicates a regular automated deduction payment. - `UNSCHEDULED`  : indicates an irregular automated deduction payment. |
| *networkTransactionId* | Antom requires confirmation of buyer authorization for MIT. You must pass a unique ID here, which should be the same value returned by the    the   [**notifyPayment**](https://docs.antom.com/ac/ams/paymentrn_online.md)   or   [**inquiryPayment**](https://docs.antom.com/ac/ams/paymentri_online.md)   API    after the first successful CIT transaction. |
| *isCardOnFile* | Indicates whether the card used in this transaction has been previously processed and stored by the merchant. Set it to   `true`   in this scenario. |
| *paymentMethodType* | The payment method type. Set it to   `CARD`   for this scenario. |

<!-- TabGroup -->

**Tab: Antom stores card information**

If you enable Antom to securely store the buyer’s card information, use the following example code to call the   [**pay (One-time Payments)**](https://docs.antom.com/ac/ams/payment_cashier.md)   API for initiating MIT payments:

 ```json
"paymentMethod": {
  "paymentMethodMetaData": {
    "isCardOnFile": true,
    "recurringType": "SCHEDULED",
    "networkTransactionId": "referenceNetworkTransactionId12345"
  },
  "paymentMethodType": "CARD",
  "paymentMethodId": "ALIPAYgzViZySEK********2avs5dAgkzss/NrTymfnc/0+xI0ssHmyU3VyWCloE4MwfmN48sP1+rSPQ=="
}
```

**Tab: Merchant stores card information**

If you store the card information yourself, use the following example code to call the   [**pay (One-time Payments)**](https://docs.antom.com/ac/ams/payment_cashier.md)   API for initiating MIT payments:

 ```json
"paymentMethod": {
  "paymentMethodMetaData": {
    "isCardOnFile": true,
    "recurringType": "SCHEDULED",
    "networkTransactionId": "referenceNetworkTransactionId12345",
    "expiryMonth": "12",
    "expiryYear": "29",
    "cardNo": "4117********6383"
  },
  "paymentMethodType": "CARD"
}
```

<!-- /TabGroup -->

**Tab: SDK integration**

### Step 1: Initiate the first CIT transaction {#I33yWBb}

 When processing the first customer-initiated transaction (CIT), it is strongly recommended to initiate a   [3DS transaction](https://docs.antom.com/ac/pm/3ds.md)   to reduce the risk of card fraud. Simultaneously, guide the buyer to save the card on the Antom payment page, allowing Antom to securely store the card information automatically.

 > **[INFO]** **Note**    : Only if the buyer checks the "Save card for future payments" option can you use the stored card details to initiate subsequent MIT charges.

 You need to set     *tokenizeMode*     to   `ASKFORCONSENT`   to show the "save card" option and set     *is3DSAuthentication*     to   `true`   to enforce 3DS authentication in the   [**createPaymentSession (One-time Payments)**](https://docs.antom.com/ac/ams/session_cashier.md)   API:

 ```json
{
  ...
  "availablePaymentMethod": {
    "paymentMethodMetaData": {
      "tokenizeMode": "ASKFORCONSENT",
      "is3DSAuthentication": true
    }
  }
}
```

 If the buyer chooses to save the card information and the payment is successful, Antom will send asynchronous notifications to you via the   [**notifyPayment**](https://docs.antom.com/ac/ams/paymentrn_online.md)   API, which includes the     *cardToken*     and the     *networkTransactionId*     parameters.

### Step 2: Initiate MIT payments {#r33KY11P}

 After completing the first CIT transaction and obtaining the     *cardToken*    , pass in the following parameters in the   [**pay (One-time Payments)**](https://docs.antom.com/ac/ams/payment_cashier.md)   API request to initiate MIT payment:

 | **Parameter name** | **Description** |
| --- | --- |
| *paymentMethodId* | The unique ID that is used to identify a payment method. The value of this parameter is that of     *cardToken*     obtained from the   [**notifyPayment**](https://docs.antom.com/ac/ams/paymentrn_online.md)   or   [**inquiryPayment**](https://docs.antom.com/ac/ams/paymentri_online.md)   API. |
| *recurringType* | The recurring type for the payment. Pass one of the following values based on your business scenario: - `SCHEDULED`  : indicates a regular automated deduction payment. - `UNSCHEDULED`  : indicates an irregular automated deduction payment. |
| *networkTransactionId* | Antom requires confirmation of buyer authorization for MIT. You must pass a unique ID here, which should be the same value returned by the    the   [**notifyPayment**](https://docs.antom.com/ac/ams/paymentrn_online.md)   or   [**inquiryPayment**](https://docs.antom.com/ac/ams/paymentri_online.md)   API    after the first successful CIT transaction. |
| *isCardOnFile* | Indicates whether the card used in this transaction has been previously processed and stored by the merchant. Set it to   `true`   in this scenario. |
| *paymentMethodType* | The payment method type. Set it to   `CARD`   for this scenario. |

 Below is an example code for calling the   [**pay (One-time Payments)**](https://docs.antom.com/ac/ams/payment_cashier.md)   API to initiate an MIT payment:

 ```json
"paymentMethod": {
  "paymentMethodMetaData": {
    "isCardOnFile": true,
    "recurringType": "SCHEDULED",
    "networkTransactionId": "referenceNetworkTransactionId12345"
  },
  "paymentMethodType": "CARD",
  "paymentMethodId": "ALIPAYgzViZySEK********2avs5dAgkzss/NrTymfnc/0+xI0ssHmyU3VyWCloE4MwfmN48sP1+rSPQ=="
}
```

<!-- /TabGroup -->
