Merchant-Initiated Transaction (MIT)
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.
Note: This feature is not available for payments initiated using specific local card schemes. Only card payments where the buyer country/region is "Global" can enable the MIT feature.
How to enable
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.
Payment Element integration
Checkout Page (CKP) integration
Hosted card integration
Server-to-server card integration
SDK integration
Step 1: Initiate the first CIT transaction
When processing the first customer-initiated transaction (CIT), it is strongly recommended to initiate a 3DS transaction 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.
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) API:{
...
"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 API, which includes the cardToken and the networkTransactionId parameters.
Step 2: Initiate MIT payments
Note: It is recommended that you initiate MIT transactions in a distributed manner, avoiding concentrated initiation at the same time point in order to prevent triggering rate limiting.
After completing the first CIT transaction and obtaining the cardToken, pass in the following parameters in the pay (One-time Payments) API request to initiate MIT payment:
"paymentMethod": {
"paymentMethodMetaData": {
"isCardOnFile": true,
"recurringType": "SCHEDULED",
"networkTransactionId": "referenceNetworkTransactionId12345"
},
"paymentMethodType": "CARD",
"paymentMethodId": "ALIPAYgzViZySEK********2avs5dAgkzss/NrTymfnc/0+xI0ssHmyU3VyWCloE4MwfmN48sP1+rSPQ=="
}Step 1: Initiate the first CIT transaction
When processing the first customer-initiated transaction (CIT), it is strongly recommended to initiate a 3DS transaction 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.
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) API:{
...
"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 API, which includes the cardToken and the networkTransactionId parameters.
Step 2: Initiate MIT payments
Note: It is recommended that you initiate MIT transactions in a distributed manner, avoiding concentrated initiation at the same time point in order to prevent triggering rate limiting.
After completing the first CIT transaction and obtaining the cardToken, pass in the following parameters in the pay (One-time Payments) API request to initiate MIT payment:
"paymentMethod": {
"paymentMethodMetaData": {
"isCardOnFile": true,
"recurringType": "SCHEDULED",
"networkTransactionId": "referenceNetworkTransactionId12345"
},
"paymentMethodType": "CARD",
"paymentMethodId": "ALIPAYgzViZySEK********2avs5dAgkzss/NrTymfnc/0+xI0ssHmyU3VyWCloE4MwfmN48sP1+rSPQ=="
}Step 1: Initiate the first CIT transaction or standalone card binding
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 ASKFORCONSENTto show the "save card" option to the buyer and set is3DSAuthentication totrueto initiate a 3DS transaction in the pay (One-time Payments) API:
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.
"paymentMethod":
{
"paymentMethodMetaData":
{
"is3DSAuthentication": true,
"tokenizeMode": "ASKFORCONSENT"
},
"paymentMethodType": "CARD"
},- You can use Antom’s standalone card binding feature to securely store the buyer’s card information. It is also strongly recommended to initiate a 3DS transaction to mitigate fraud risks. You need to set is3DSAuthentication to trueto enforce 3DS authentication in the createVaultingSession API.
{
"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 API, which includes the cardToken and the networkTransactionId parameters.
Step 2: Initiate MIT payments
Note: It is recommended that you initiate MIT transactions in a distributed manner, avoiding concentrated initiation at the same time point in order to prevent triggering rate limiting.
After obtaining cardToken and networkTransactionId, pass in the following parameters in the pay (One-time Payments) API request to initiate MIT payment:
"paymentMethod": {
"paymentMethodMetaData": {
"isCardOnFile": true,
"recurringType": "SCHEDULED",
"networkTransactionId": "referenceNetworkTransactionId12345"
},
"paymentMethodType": "CARD",
"paymentMethodId": "ALIPAYgzViZySEK********2avs5dAgkzss/NrTymfnc/0+xI0ssHmyU3VyWCloE4MwfmN48sP1+rSPQ=="
}Step 1: Initiate the first CIT transaction or standalone card binding
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 ENABLEDto enable Antom to store the card information and set is3DSAuthentication totrueto enforce 3DS authentication in the pay (One-time Payments) API:
"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 feature to securely store the buyer’s card information. It is also strongly recommended to initiate a 3DS transaction to mitigate fraud risks. You need to set is3DSAuthentication to trueto enforce 3DS authentication in the vaultPaymentMethod API.
"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 API, which includes the cardToken and the networkTransactionId parameters.
Step 2: Initiate MIT payments
Note: It is recommended that you initiate MIT transactions in a distributed manner, avoiding concentrated initiation at the same time point in order to prevent triggering rate limiting.
After obtaining cardToken and networkTransactionId, pass in the following parameters in the pay (One-time Payments) API request to initiate MIT payment:
Antom stores card information
Merchant 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) API for initiating MIT payments:
"paymentMethod": {
"paymentMethodMetaData": {
"isCardOnFile": true,
"recurringType": "SCHEDULED",
"networkTransactionId": "referenceNetworkTransactionId12345"
},
"paymentMethodType": "CARD",
"paymentMethodId": "ALIPAYgzViZySEK********2avs5dAgkzss/NrTymfnc/0+xI0ssHmyU3VyWCloE4MwfmN48sP1+rSPQ=="
}If you store the card information yourself, use the following example code to call the pay (One-time Payments) API for initiating MIT payments:
"paymentMethod": {
"paymentMethodMetaData": {
"isCardOnFile": true,
"recurringType": "SCHEDULED",
"networkTransactionId": "referenceNetworkTransactionId12345",
"expiryMonth": "12",
"expiryYear": "29",
"cardNo": "4117********6383"
},
"paymentMethodType": "CARD"
}Step 1: Initiate the first CIT transaction
When processing the first customer-initiated transaction (CIT), it is strongly recommended to initiate a 3DS transaction 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.
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) API:{
...
"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 API, which includes the cardToken and the networkTransactionId parameters.
Step 2: Initiate MIT payments
Note: It is recommended that you initiate MIT transactions in a distributed manner, avoiding concentrated initiation at the same time point in order to prevent triggering rate limiting.
After completing the first CIT transaction and obtaining the cardToken, pass in the following parameters in the pay (One-time Payments) API request to initiate MIT payment:
"paymentMethod": {
"paymentMethodMetaData": {
"isCardOnFile": true,
"recurringType": "SCHEDULED",
"networkTransactionId": "referenceNetworkTransactionId12345"
},
"paymentMethodType": "CARD",
"paymentMethodId": "ALIPAYgzViZySEK********2avs5dAgkzss/NrTymfnc/0+xI0ssHmyU3VyWCloE4MwfmN48sP1+rSPQ=="
}