# Accept payments with South Korean issuer-authenticated cards

> Learn how to accept payments with South Korean issuer-authenticated cards through API-only integration.

This topic describes how to integrate [South Korean issuer-authenticated cards](https://docs.antom.com/ac/antomop/south_korean_mdx.md) using the hosted mode. Since Korean local card payments do not support 3DS authentication, merchants in specific industries (such as digital entertainment) face payment limit constraints. To increase transaction limits and effectively reduce risk, it is recommended that you integrate the [South Korean issuer-authenticated card](https://docs.antom.com/ac/antomop/south_korean_mdx.md) payment method.

In the [authenticated card](https://docs.antom.com/ac/antomop/south_korean_mdx.md) payment scenario, each payment must be authenticatied. Through the hosted mode, Antom provides an intermediate payment page where your buyers can select their preferred card brand. You do not need to handle the card brand selection logic directly, nor will you need to handle the buyer's payment data. This ensures a seamless and reliable payment experience for buyers while maintaining security and compliance.

## User experience

The following image illustrates the user experience for [South Korean issuer-authenticated card](https://docs.antom.com/ac/antomop/south_korean_mdx.md) payments:

#### Tab: Web

![Web user experience showing South Korean issuer-authenticated card payment flow where buyers select their preferred domestic card brand on the bank selection page](https://idocs-assets.marmot-cloud.com/storage/idocs87c36dc8dac653c1/yuque/idocs/2025/png/8df7b8f0-4e61-4ac8-9868-61f9192c8cca.png)

#### Tab: App

![Mobile app user experience showing South Korean issuer-authenticated card payment flow where buyers select their preferred domestic card brand on the bank selection page](https://idocs-assets.marmot-cloud.com/storage/idocs87c36dc8dac653c1/yuque/idocs/2025/png/8a630242-92ea-427c-b4a1-a716ac9c09b6.png)

## Payment flow

For [South Korean issuer-authenticated card](https://docs.antom.com/ac/antomop/south_korean_mdx.md) payments, the payment flow is composed of the following steps:

![South Korean issuer-authenticated card payment flow showing the integration across buyer, merchant client, merchant server, Antom server and bank payment page](https://idocs-assets.marmot-cloud.com/storage/idocs87c36dc8dac653c1/yuque/idocs/2026/png/28dfc4fd-c146-41b7-a707-29019d9291f4.png)

1.  **The buyer selects products and submits payment.**
2.  **Initiate a payment request.**
    The merchant server calls the [**pay (One-time Payments)**](https://docs.antom.com/ac/ams/payment_cashier.md) API to obtain the payment continuation URL.
3.  **Redirect the buyer to the bank selection page.**
    Antom returns the payment continuation URL (_normalUrl_) in the response of the [**pay (One-time Payments)**](https://docs.antom.com/ac/ams/payment_cashier.md) API. The merchant client displays an intermediate payment page, allowing the buyer to select their preferred [South Korean issuer-authenticated card](https://docs.antom.com/ac/antomop/south_korean_mdx.md) brand. The buyer is then redirected to the corresponding [South Korean issuer-authenticated card](https://docs.antom.com/ac/antomop/south_korean_mdx.md) payment page to pay. After payment is completed, the buyer returns to the merchant payment result page.
4.  **Obtain the authorized payment result.**
    The merchant server receives the authorized payment notification returned by Antom and performs corresponding business processing based on the result.
5.  **Obtain the capture result.**
    If the authorized payment is successful, Antom will automatically initiate capture on your behalf. You can obtain the capture result through either of the following two methods:

-   Asynchronous notification: Specify _paymentNotifyUrl_ in the [**pay (One-time Payments)**](https://docs.antom.com/ac/ams/payment_cashier.md) API or configure on [Antom Dashboard](https://dashboard.alipay.com/global-payments/account/login?goto=https%3A%2F%2Fdashboard.alipay.com%2Fglobal-payments%2Fhome) to set the address for receiving asynchronous notifications. Upon capture completion, Antom will send you asynchronous notifications via the [**notifyCapture (One-time Payments)**](https://docs.antom.com/ac/ams/notify_capture.md) API.
-   Synchronous inquiry: Call the [**inquiryPayment**](https://docs.antom.com/ac/ams/paymentri_online.md) API to check the capture status.

## Integration preparations

Before you start integrating, read the [Integration Guide](https://docs.antom.com/integration_guide_en.md) and [API Overview](https://docs.antom.com/ac/ams/api_fund.md) documents to understand the integration steps of the server-side API and the precautions for calling the API. Furthermore, ensure that the following prerequisites are met:

-   Obtain a client ID
-   Complete the key configuration
-   Complete the configuration of _paymentNotifyUrl_ to receive the asynchronous notification
-   Integrate the server-side SDK package, install the server-side library, and initialize a request instance. For more details, refer to [Server-side SDKs](https://docs.antom.com/ac/sdks/server_sdks.md).

## Integration steps

Start your integration by taking the following steps:

1.  Initiate a payment request
2.  Redirect to the bank selection page
3.  Obtain the authorized payment result
4.  Obtain the capture result

### Step 1: Initiate a payment request Server-side

Follow [Step 1: Initiate an authorized payment](https://docs.antom.com/ac/cashierpay/cardcollant.md#z5Nqg) to call the [**pay (One-time Payments)**](https://docs.antom.com/ac/ams/payment_cashier.md) API and submit the payment request. You need to pass in the basic parameters, order parameters, and device parameters in the payment request. At the same time, you do not need to pass in card payment parameters or 3DS information, but you need to pass in the following parameters:

| **Parameter name** | **Required** | **Description** |
| --- | --- | --- |
| _requireIssuerAuthentication_ | Yes | For [South Korean issuer-authenticated card](https://docs.antom.com/ac/antomop/south_korean_mdx.md) payments, set this parameter to `true`, indicating that the transaction requires issuer authentication. |
| _selectedCardBrand_ | No | The card brand selected by the buyer. In [South Korean issuer-authenticated card](https://docs.antom.com/ac/antomop/south_korean_mdx.md) payments: - If _requireIssuerAuthentication_ is `true` and this parameter is specified, the buyer will be redirected directly to the corresponding bank's payment page. - If _requireIssuerAuthentication_ is `true` but this parameter is empty, Antom will display a page for the buyer to choose a card brand. |
| _isAuthorization.captureMode_ | No | The capture mode. For [South Korean issuer-authenticated card](https://docs.antom.com/ac/antomop/south_korean_mdx.md) payments, only automatic capture by Antom is supported. Please keep the default value `AUTOMATIC` or leave this parameter unspecified. |

The following code shows a sample of the request message:

```json
{
    "env": {
        "osType": "ANDROID",
        "terminalType": "WAP",
        "clientIp": "192.168.1.1"
    },
    "order": {
        "orderAmount": {
            "currency": "KRW",
            "value": "46000"
        },
        "orderDescription": "클룩과 함께 떠날 즐거운 시간",
        "referenceOrderId": "referenceOrderId01",
        "buyer": {
            "buyerEmail": "xxx @xxx.com"
        }
    },
    "paymentAmount": {
        "currency": "KRW",
        "value": "46000"
    },
    "paymentFactor": {
        "isAuthorization": true
    },
    "paymentMethod": {
        "paymentMethodType": "CARD",
        "paymentMethodMetaData": {
            "selectedCardBrand": "HYUNDAI", // Optional. Used to specify the card brand to skip the Antom bank selection page
            "requireIssuerAuthentication": true
        }
    },
    "paymentNotifyUrl": "https://www.yourNotifyUrl.com",
    "paymentRedirectUrl": "https://www.yourMerchantWeb.com",
    "paymentRequestId": "paymentRequestId01",
    "productCode": "CASHIER_PAYMENT",
    "settlementStrategy": {
        "settlementCurrency": "KRW"
    }
}
```

The following code shows an example of the response message after initiating an authorized payment. It does not directly return the authorized payment result, but instead returns _normalUrl_ to redirect the buyer to the payment method page for payment.

```json
{
    "normalUrl": "https://payment-gateway.tosspayments.com/link/payment?urlToken=checkout-url-****",
    "paymentActionForm": "{\"method\":\"GET\",\"paymentActionFormType\":\"RedirectActionForm\",\"redirectUrl\":\"https://payment-gateway.tosspayments.com/link/payment?urlToken=checkout-url-****\"}",
    "paymentAmount": {
        "currency": "KRW",
        "value": "46000"
    },
    "paymentCreateTime": "2025-12-16T18:09:37-08:00",
    "paymentId": "20251217194******0236670295",
    "paymentRequestId": "paymentRequestId01",
    "paymentResultInfo": {
        "avsResultRaw": "",
        "cvvResultRaw": "",
        "threeDSResult": {
            "cavv": "",
            "eci": ""
        }
    },
    "paymentTime": "2025-12-16T18:09:38-08:00",
    "redirectActionForm": {
        "method": "GET",
        "redirectUrl": "https://payment-gateway.tosspayments.com/link/payment?urlToken=checkout-url-****"
    },
    "result": {
        "resultCode": "PAYMENT_IN_PROCESS",
        "resultMessage": "payment in process",
        "resultStatus": "U"
    }
}
```

### Step 2: Redirect to the bank selection page Client-side

After the merchant server obtains _normalUrl_ returned in the response of [**pay (One-time Payments)**](https://docs.antom.com/ac/ams/payment_cashier.md), it should pass this URL to the client side. The merchant client then redirects to the corresponding bank payment page or the bank selection page (Antom intermediate page). The user experience is as follows:

> **Note**: When the transaction is initiated from your merchant app, it is strongly recommended to [use a webview to load the _normalUrl_](https://docs.antom.com/ac/cashierpay/config.md#eK0wp). Additionally, when redirecting back to the merchant app, ensure that the webview page remains active. If you encounter any issues with the webview implementation, please contact Antom Technical Support.

| **Bank payment page** | **Antom intermediate page** |
| --- | --- |
| If you specified the buyer's card brand in the _selectedCardBrand_ parameter of the [**pay (One-time Payments)**](https://docs.antom.com/ac/ams/payment_cashier.md) API, the buyer will be directly redirected to that bank’s payment page. Example _normalUrl_ returned by Antom: `https://payment-gateway.tosspayments.com/link/payment?urlToken=checkout-url-****`. The figure below shows the user experience of direct redirection to the bank payment page: ![User experience of directly redirecting the buyer to the bank payment page to pay if you specify the buyer's card brand in the selectedCardBrand parameter of the pay API](https://idocs-assets.marmot-cloud.com/storage/idocs87c36dc8dac653c1/yuque/idocs/2026/png/e263a6b0-4ef6-4243-b8fa-b6a85c752316.png) | If you did not specify _selectedCardBrand_, the buyer will be redirected to the Antom-hosted bank selection page to select their preferred [South Korean issuer-authenticated card](https://docs.antom.com/ac/antomop/south_korean_mdx.md) brand, then be redirected to the corresponding card payment page. Example normalUrl returned by Antom: `https://checkout.antom.com/checkout-page/pages/payment/index.html?sessionData=OQzl9vvE%****`. The figure below shows the user experience of redirecting to the Antom intermediate page for card brand selection: ![User experience of redirecting the buyer to the Antom intermediate page for card brand selection if you did not specify the selectedCardBrand parameter in the pay API](https://idocs-assets.marmot-cloud.com/storage/idocs87c36dc8dac653c1/yuque/idocs/2026/png/053305d4-f9a6-46a9-b320-ebab23a0a04b.png) |

Process the obtained _normalUrl_ according to the instructions in [Step 2: Redirect to the card information collection page](https://docs.antom.com/ac/cashierpay/cardcollant.md#FfHej).

### Step 3: Obtain the authorized payment result Server-side

Obtain the authorized payment result by following the steps detailed in [Step 3: Obtain the authorization result](https://docs.antom.com/ac/cashierpay/cardcollant.md#tWHzs). The sample code below demonstrates the asynchronous notification returned by Antom via the [**notifyPayment**](https://docs.antom.com/ac/ams/paymentrn_online.md) API:

```json
{
    "actualPaymentAmount": {
        "currency": "KRW",
        "value": "46000"
    },
    "cardInfo": {
        "avsResultRaw": "",
        "cardNo": "************513*",
        "cvvResultRaw": "",
        "paymentMethodRegion": "KR",
        "threeDSResult": {
            "cavv": "",
            "challengeCancel": "",
            "challenged": false,
            "eci": "",
            "threeDSOffered": false,
            "threeDStransactionStatusReason": ""
        }
    },
    "notifyType": "PAYMENT_RESULT",
    "paymentAmount": {
        "currency": "KRW",
        "value": "46000"
    },
    "paymentCreateTime": "2025-12-16T18:09:37-08:00",
    "paymentId": "20251217194******0236670295",
    "paymentRequestId": "paymentRequestId01",
    "paymentResultInfo": {
        "avsResultRaw": "",
        "cardNo": "************513*",
        "cvvResultRaw": "",
        "paymentMethodRegion": "KR",
        "threeDSResult": {
            "cavv": "",
            "challengeCancel": "",
            "challenged": false,
            "eci": "",
            "threeDSOffered": false,
            "threeDStransactionStatusReason": ""
        }
    },
    "paymentTime": "2025-12-16T18:09:56-08:00",
    "result": {
        "resultCode": "SUCCESS",
        "resultMessage": "success.",
        "resultStatus": "S"
    }
}
```

### Step 4: Obtain the capture result Server-side

If the authorized payment is successful, Antom will automatically initiate capture on your behalf. You can [obtain the capture result](https://docs.antom.com/ac/cashierpay/capture.md#5y1Qz) through asynchronous notification or active query.

> **Note**: [South Korean issuer-authenticated card](https://docs.antom.com/ac/antomop/south_korean_mdx.md) payments only support capture initiated automatically by Antom. Additionally, authorized payment of successful orders cannot be voided.

## After payments

After completing the payment, you can perform the following actions:

### Cancellation Server-side

[South Korean issuer-authenticated card](https://docs.antom.com/ac/antomop/south_korean_mdx.md) payments do not support voiding orders that have been successfully authorized. For orders where authorization has not yet been completed, you may cancel them directly. Refer to [Cancel](https://docs.antom.com/ac/cashierpay/cancel.md) for specific operations.

### Refund Server-side

Different payment methods have varying refund capabilities. To learn about Antom refund rules and how to initiate a refund for a successful transaction, refer to [Refund](https://docs.antom.com/ac/cashierpay/refund.md).

### Dispute Server-side

Antom provides dispute resolution services for contested transactions. For more information, refer to [Dispute Guidance](https://docs.antom.com/ac/dispute/overview.md) and [Dispute resolution](https://docs.antom.com/ac/dispute/dispute_resolution.md).