Accept payments with South Korean issuer-authenticated cards

This topic describes how to integrate South Korean issuer-authenticated cards 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 payment method.

In the authenticated card 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 payments:

韩卡web.png

Payment flow

For South Korean issuer-authenticated card payments, the payment flow is composed of the following steps:

flow-en.png

  1. The buyer selects products and submits payment.
  2. Initiate a payment request.
    The merchant server calls the pay (One-time Payments) 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) API. The merchant client displays an intermediate payment page, allowing the buyer to select their preferred South Korean issuer-authenticated card brand. The buyer is then redirected to the corresponding South Korean issuer-authenticated card 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:

Integration preparations

Before you start integrating, read the Integration Guide and API Overview 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.

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 to call the pay (One-time Payments) 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 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 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 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:

copy
{
    "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.

copy
{
    "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), 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:

Bank payment page

Antom intermediate page

If you specified the buyer's card brand in the selectedCardBrand parameter of the pay (One-time Payments) 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:

韩卡-银行页面.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 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:

韩卡web.png

Process the obtained normalUrl according to the instructions in Step 2: Redirect to the card information collection page.

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. The sample code below demonstrates the asynchronous notification returned by Antom via the notifyPayment API:

copy
{
    "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 through asynchronous notification or active query.

Note: South Korean issuer-authenticated card 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 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 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.

Dispute Server-side

Antom provides dispute resolution services for contested transactions. For more information, refer to Dispute Guidance.