> ## Documentation Index
> Fetch the complete documentation index at: https://doc.haipay.net/llms.txt
> Use this file to discover all available pages before exploring further.

# South Korea

<Warning>
  **Before reading this API documentation, be sure to review the [**API Description Guide**](/docs/en/guide/api_description_guide)**
</Warning>

## **Limits**

| Transaction Type | Limit                             |
| :--------------- | --------------------------------- |
| Collection       | USD: 0.99-1000, KRW: 1000-1500000 |
| Payout           | KRW: 1000-1500000                 |

> **Amount Decimal Places:** KRW — 0 decimal places (integer only) | USD — 2 decimal places

## **Collection API**

### **Collection Application**

**Brief Description:**

* Create a collection order

**URL:**

KRW: `/krw/collect/apply` Note: appId for KRW, amount in KRW, settlement in KRW

USD: `/usd/collect/apply` Note: appId for USD, amount in USD, settlement in USD

**Parameters:**

| Parameter Name  | Required | Type   | Description                                                                                                                                                                                                                   |
| :-------------- | :------- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| appId           | Yes      | Long   | Business ID (obtained from backend, must pass corresponding business ID based on currency in URL)                                                                                                                             |
| orderId         | Yes      | String | Merchant order number (must be unique, length not exceeding 48)                                                                                                                                                               |
| name            | Yes      | String | User name, recommended to use real name, format: firstName and lastName separated by space, example: John Doe                                                                                                                 |
| phone           | Yes      | String | Real phone number (format reference [Phone Number Format](/docs/en/guide/frequently_asked_question#en_faq_phone-number-format))                                                                                               |
| email           | Yes      | String | Real email address                                                                                                                                                                                                            |
| amount          | Yes      | String | Transaction amount (accurate to two decimal places; do not add punctuation, e.g., ",") Range reference: Collection code                                                                                                       |
| payType         | Yes      | String | [Transaction type](#inBankCode)                                                                                                                                                                                               |
| inBankCode      | Yes      | String | [Payment method](#inBankCode)                                                                                                                                                                                                 |
| callBackUrl     | Yes      | String | URL to redirect after successful payment                                                                                                                                                                                      |
| callBackFailUrl | Yes      | String | URL to redirect after failed payment                                                                                                                                                                                          |
| cancelUrl       | No       | String | If provided, the payment page displays a Back button that redirects the user to this URL when clicked.                                                                                                                        |
| notifyUrl       | No       | String | Callback URL                                                                                                                                                                                                                  |
| subject         | No       | String | Payment remark                                                                                                                                                                                                                |
| country         | No       | String | Cashier mode requires this parameter, please pass: 410                                                                                                                                                                        |
| body            | No       | String | Remark details                                                                                                                                                                                                                |
| partnerUserId   | Yes      | String | Unique user identifier (e.g., userId), used for risk control, must be real and valid, otherwise it will affect transactions. Format requirements: digits, uppercase and lowercase letters or common symbols -\~!@#\$%&\*()\_. |
| sign            | Yes      | String | Signature                                                                                                                                                                                                                     |

Response data parameter description

| Parameter Name | Type   | Description                            |
| :------------- | :----- | :------------------------------------- |
| orderId        | String | Merchant order number (must be unique) |
| orderNo        | String | Platform order number                  |
| payUrl         | String | Payment link                           |
| sign           | String | Signature                              |

### **Collection Query**

**Brief Description:**

* Query collection order

**URL:**

KRW: `/krw/collect/query`

USD: `/usd/collect/query`

**Parameters:**

| Parameter Name | Required | Type   | Description                                                                                       |
| :------------- | :------- | :----- | :------------------------------------------------------------------------------------------------ |
| appId          | Yes      | Long   | Business ID (obtained from backend, must pass corresponding business ID based on currency in URL) |
| orderId        | Yes      | String | Merchant order number                                                                             |
| orderNo        | No       | String | Platform order number (faster response)                                                           |
| sign           | Yes      | String | Signature                                                                                         |

request

```json theme={null}
{
  "appId": 1054,
  "orderId": "M22222000028",
  "sign": "EmyJGm3ELzG4FsOd0Krs9ncbSjo4oTGuXWML+7djYla3+VAwd9wS17z38p/7U2ZAjroO04XrE7YXcB1o76Dtyipj3h3bJzs7FYma1QNkMUdt9hh7m8U6hMsMQX7vIWHtXNwz4pbTSC75+kQWXaCew7KoE6LXECdJU8AISgNgeki2TK9R0pCfshr0Z2SZBPeuT6OvIH5LdmqgdZhuqnffGU2qnXk4KMkO848e6/WALLBR+LE1wyKHfPnYVcuKSMVYxkvKyyIL5JIPEgW0o5bh4RCbaUn3NZtyYwrU1uQ3ZDFRThm9j6XAQP+LBlmq3nOePqBtp/VDVarRaV+7FbQg3A=="
}
```

response

```json theme={null}
{
  "status": "1",
  "error": "00000000",
  "msg": "",
  "data": {
    "orderId": "M22222000028",
    "orderNo": "6023042811314347",
    "amount": "50.00",
    "actualAmount": "0.00",
    "fee": "0.00",
    "status": 1,
    "sign": "fP433ygWVDLVGxYkVnIJj7riGq0U3vyVX+MbBAImxfGLZkZcEAHVEoVYuULZSmXAAXKRSyd67WlDNm+24pougM54ofAoH4HMtCL2tfCoBReFyz3z02AGKkrKE2xWhSpWoqfQoBvzwuN5iGMMu0s9Q1YvqiwJ8WDVIENnmiIyD8qDJN7caHTW2US14/faG+69AvnuIgJ/nu7/jogOlgEYdZdVYU7gcRDE+d47KjlFGswQkJ/h/uzV7cWtUqrtOO7ZnZ3/z33Xx8awokX36QoYcPSWAU0h+Ij9O9402HNhm1eTbYcLU0uI/z8xCAtyAI/tTyiFijpiNlxUKQj+zKsILw=="
  }
}
```

Response data parameter description

| Parameter Name | Type    | Description                                                                                                                |
| :------------- | :------ | :------------------------------------------------------------------------------------------------------------------------- |
| orderId        | String  | Merchant order number (must be unique)                                                                                     |
| orderNo        | String  | Platform order number                                                                                                      |
| amount         | String  | Transaction amount                                                                                                         |
| actualAmount   | String  | Amount received                                                                                                            |
| fee            | String  | Handling fee                                                                                                               |
| status         | Integer | Status (0 - Not started, 1 - In progress, 2 - Success (final state), 3 - Failure (final state), -1 - Pending confirmation) |
| payTime        | String  | Payment success time (available when status=2) (local time), format: yyyy-MM-dd HH:mm:ss                                   |
| errorMsg       | String  | Payment failure reason (available when status=3)                                                                           |
| sign           | String  | Signature                                                                                                                  |

### **Payment Methods** <a id="inBankCode" />

| Currency | Payment Type (payType) | Payment Code (inBankCode) | Limits       | Status    | Description                                                       |
| -------- | ---------------------- | ------------------------- | ------------ | --------- | ----------------------------------------------------------------- |
| KRW      | EWALLET                | KAKAOPAY\_KRW             | 1000-1500000 | Available | Kakao Pay Wallet                                                  |
| KRW      | EWALLET                | NAVERPAY\_KRW             | 1000-1500000 | Available | Naver Pay Wallet                                                  |
| KRW      | EWALLET                | TOSS\_KRW                 | 1000-1500000 | Available | Toss Pay Wallet                                                   |
| KRW      | EWALLET                | SAMSUNGPAY\_KRW           | 1000-1500000 | Available | Samsung Pay Wallet                                                |
| KRW      | EWALLET                | PAYCO\_KRW                | 1000-1500000 | Available | PayCo Wallet                                                      |
| KRW      | BANK\_TRANSFER         | BANK\_KRW                 | 1000-1500000 | Available | Bank account authorization payment (supports all Korean banks)    |
| KRW      | VA (Virtual Account)   | VA\_BANK\_KRW             | 300-500000   | Available | Virtual Account Cashier                                           |
| KRW      | VA (Virtual Account)   | KOOKMIN\_BANK             | 300-500000   | Available | Supported Bank: Kookmin Bank                                      |
| KRW      | VA (Virtual Account)   | SHBKKRSE                  | 300-500000   | Available | Supported Bank: Shinhan Bank                                      |
| KRW      | VA (Virtual Account)   | HANA\_BANK                | 300-500000   | Available | Supported Bank: Hana Bank                                         |
| KRW      | VA (Virtual Account)   | WOORI\_BANK               | 300-500000   | Available | Supported Bank: Woori Bank                                        |
| KRW      | VA (Virtual Account)   | NONGHYUP\_BANK            | 300-500000   | Available | Supported Bank: Nonghyup Bank                                     |
| KRW      | VA (Virtual Account)   | IBK                       | 300-500000   | Available | Supported Bank: IBK                                               |
| KRW      | VA (Virtual Account)   | SC\_BANK                  | 300-500000   | Available | Supported Bank: SC Bank                                           |
| KRW      | VA (Virtual Account)   | KBANK                     | 300-500000   | Available | Supported Bank: Kbank                                             |
| KRW      | VA (Virtual Account)   | SUHYUP                    | 300-500000   | Available | Supported Bank: Suhyup                                            |
| KRW      | VA (Virtual Account)   | DAEGU\_BANK               | 300-500000   | Available | Supported Bank: Daegu Bank                                        |
| KRW      | VA (Virtual Account)   | BUSAN\_BANK               | 300-500000   | Available | Supported Bank: Busan Bank                                        |
| KRW      | VA (Virtual Account)   | KYONGNAM\_BANK            | 300-500000   | Available | Supported Bank: Kyongnam Bank                                     |
| KRW      | VA (Virtual Account)   | KWANGJU\_BANK             | 300-500000   | Available | Supported Bank: Kwangju Bank                                      |
| KRW      | VA (Virtual Account)   | KFCC                      | 300-500000   | Available | Supported Bank: Korea Federation of Community Credit Cooperatives |
| KRW      | VA (Virtual Account)   | KOREA\_POST               | 300-500000   | Available | Supported Bank: Korea Post                                        |
| USD      | EWALLET                | KAKAOPAY\_USD             | 0.99-1000    | Available | Kakao Pay Wallet                                                  |
| USD      | EWALLET                | NAVERPAY\_USD             | 0.99-1000    | Available | Naver Pay Wallet                                                  |
| USD      | EWALLET                | TOSS\_USD                 | 0.99-1000    | Available | Toss Pay Wallet                                                   |
| USD      | EWALLET                | SAMSUNGPAY\_USD           | 0.99-1000    | Available | Samsung Pay Wallet                                                |
| USD      | EWALLET                | PAYCO\_USD                | 0.99-1000    | Available | PayCo Wallet                                                      |
| USD      | BANK\_TRANSFER         | KR\_BANK\_USD             | 0.99-1000    | Available | Bank account authorization payment (supports all Korean banks)    |

## **Payout API**

### **Payout Application**

**Brief Description:**

* Create a payout order

**URL:** `/krw/pay/apply`

**Parameters:**

| Parameter Name | Required | Type   | Description                                                                                                                                                                                                                   |
| :------------- | :------- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| appId          | Yes      | Long   | Business ID (obtained from backend, must pass corresponding business ID based on currency in URL)                                                                                                                             |
| orderId        | Yes      | String | Merchant order number (must be unique, length not exceeding 48)                                                                                                                                                               |
| amount         | Yes      | String | Transaction amount (unit: ₩, accurate to two decimal places; do not add punctuation, e.g., ",")                                                                                                                               |
| accountType    | Yes      | String | Account type: BANK\_ACCOUNT (bank account)                                                                                                                                                                                    |
| bankCode       | Yes      | String | Bank code (see Appendix: Payout Bank Codes)                                                                                                                                                                                   |
| accountNo      | Yes      | String | User bank account number                                                                                                                                                                                                      |
| name           | Yes      | String | Recipient name (format: uppercase and lowercase letters with spaces allowed, 1-30 characters, "firstName middleName lastName" (middleName is optional, special characters supported: .-))                                     |
| phone          | Yes      | String | Phone number                                                                                                                                                                                                                  |
| email          | Yes      | String | Email address                                                                                                                                                                                                                 |
| notifyUrl      | No       | String | Callback URL                                                                                                                                                                                                                  |
| subject        | No       | String | Payment remark                                                                                                                                                                                                                |
| body           | No       | String | Remark details                                                                                                                                                                                                                |
| partnerUserId  | Yes      | String | Unique user identifier (e.g., userId), used for risk control, must be real and valid, otherwise it will affect transactions. Format requirements: digits, uppercase and lowercase letters or common symbols -\~!@#\$%&\*()\_. |
| sign           | Yes      | String | Signature                                                                                                                                                                                                                     |

#####

request (when accountType is BANK\_ACCOUNT type)

```json theme={null}
{
"appId": 1054,
    "orderId": "M100000450012",
    "amount": "2000",
    "accountType": "BANK_ACCOUNT",
    "bankCode": "KYNAKR22",
    "accountNo": "09876543210",
    "name": "john doe",
    "phone": "09876543210",
    "email": "johndoe@cashfree.com",
    "subject": "iphone13",
    "body": "ProMotion technology with adaptive refresh rates up to 120Hz",
    "partnerUserId": "149597870",
    "sign": "I1PeK3eJOVsFFNowxVRqMXpeWm1lr/BcRpBi8WsW4wVo1+5CC3JsrFq/m/L2O69NzKHvtDWi4zia3DL3dPut0yMyUyqL91LNCSaeISbGsQPlhEsQpyTOryS/RKOfsrn2Xo37SCF/phAvndOk2jwwGwqM5xLz1ms9Ukl85wv27QFNrXIMxK2p18oe7MpMYrgf+xvEBE/VqCtKMtN9pO449wWwXzHWNPbZ76s4pAvKwRE9yXQDr7Iw14Dktcnl1FoLM4gWM/obkO+mz6SyAGDuXhVh/+OD/IGNiCyTCNq6ciQY28UnCFV6ZIP40gxsFhfBJKbK+Raw7y1Bh912ifYfug=="
}
```

response

```json theme={null}
{
"status": "1",
    "error": "00000000",
    "msg": "",
    "data": {
    "orderId": "M100000450013",
        "orderNo": "3023062014149637",
        "sign": "LmhUnkw5j0pMiimsG8rKwdNNZGvXH5MpSmD6mdHZwq1SQwuK5BohmdEoqKB/jkMk28o3da4Cxh6Q+tW97+yTCemRrF+dMaHA73rpOeUuujKQl/UcFvJuMhfLBa2tp09L71NzoBqpPD6aXf37mYAz8E1HmERwFPpac5FVxIYanHG8cqmMLJYsVmHTSxWavgWU03ys9UczBePkBiR8sl2FSOhFABB0wAP28lswrV/ABS68IsLKtyd1fyI3GBfSbIK5nDEEnlE+EdElFdLs9taAxJImeVF1x4eT47+bkPJ2qS8z3K8QGzKLF3W+8SiRZGfSwDTsLKH+2Vycvy5auRl+ag=="
}
}
```

Response data parameter description

| Parameter Name | Required | Type                                   |
| :------------- | :------- | :------------------------------------- |
| orderId        | String   | Merchant order number (must be unique) |
| orderNo        | String   | Platform order number                  |
| sign           | String   | Signature                              |

### **Payout Query**

**Brief Description:**

* Query payout order

**URL:** `/krw/pay/query`

**Parameters:**

| Parameter Name | Required | Type   | Description                                                                                       |
| :------------- | :------- | :----- | :------------------------------------------------------------------------------------------------ |
| appId          | Yes      | Long   | Business ID (obtained from backend, must pass corresponding business ID based on currency in URL) |
| orderId        | Yes      | String | Merchant order number                                                                             |
| orderNo        | No       | String | Platform order number (faster response)                                                           |
| sign           | Yes      | String | Signature                                                                                         |

request

```json theme={null}
{
"appId": 1000,
    "orderId": "M1234567111",
    "orderNo": "3022111516571436",
    "sign": "ZxkVZL+GAyv0VhvWn4IvuYahTzxgQuthkuV2ONWiqIfIDb2avvHlFOUJVzqZi1q8CPHXZm1ltanRTRVTxfsuftLvGeDioUHglWt46/RU6c1OPznpLGsZ35Q3n5tW2y1EnOsxPynXBFLuDQy+aZ3l9u6AQ30T0zQexMGT+IxuFkmUp02g/6juaHa5ZgNMv7lN67ixIp162wrM7OJuaOif872QijSceRdZhzaMGImAwB0D4MosRV4WMBOKkwgPdmS7GuZN66YUidXk3wTGqX3MYRw6M0kj4eNegSUwPXvp4q4p0KO8Y3xUMld54GY2ApX3WN3CBtC/vpJqEszjGBbbGg=="
}
```

response — Order Failed

```json theme={null}
{
"status": "1",
    "error": "00000000",
    "msg": "",
    "data": {
    "orderId": "M1234567111",
        "orderNo": "3022111516571436",
        "amount": "2000.00",
        "fee": "0.00",
        "status": 3,
        "errorMsg": "Đơn hàng không tồn tại",
        "sign": "KKuvCl0SuNANJs+l2ogDaJm8pmV+Hi+Xa7q27vJ6D1Ehs4aOp13kRbITfJAhczh3T81BE9qwHeJaYwf+r0EypKM9TL6pMwfG8Az4gRy1D57wiUaVjl2PWcvbEqrn1hL0b+btkjvAM9I+CcSv+wuOW3/uku17Ws3FhgJLj9sFsQUBAPjDO+758VnwBytCOLBmljLBXyKgNgpmFQ1/DNkqWl0UNzyLK45Zw3yf5NiwhEFbvW0jlOWlfu/ql4hluISUQG573jEoFCBEnQLb2tQoRZj1QYNRCXPf5lbej0vzqbEwvR9h+ZOf255t1MocJkdIe463DTV5U3KZdVT87HMagw=="
}
}
```

response — Order Successful

```json theme={null}
{
"status": "1",
    "error": "00000000",
    "msg": "",
    "data": {
    "orderId": "M1234567112",
        "orderNo": "3022111517401574",
        "amount": "2000.00",
        "fee": "1003.00",
        "status": 2,
        "payTime": "2024-03-01 23:59:59",
        "sign": "khPtOmGq+cpKX0HFAI/lbP0dx4oVyNAnL5oLsdmhDJdASlQm0yg5I3o+MhImYggEsL6c2bo5fP29t54OZFqSdQDfIuNDvGbAMAr4mRBxc0hoHLkBLyyagfVPBLyQA1JY8XV3ZL4ySzQ3ZQnMCfrh2K39ueUuz6HpZ03Hj0KYijVRCXAZaio/L5jfLBT12QXmvIfAHa8s/k9flhK05ENHPep3zjj/MZGOEaX7jkEJLfjK0duypDCa61BRQjM+oePOdVsgleIl1Yf98UAxMDZ/A3912KFHEb+/jvmdnulNbiJFyuT1fEe+j2teUgw3vFsZAtwNWAgxhC7UO+N0Q5z4EA=="
}
}
```

Response data parameter description

| Parameter Name | Type    | Description                                                                                                                |
| :------------- | :------ | :------------------------------------------------------------------------------------------------------------------------- |
| orderId        | String  | Merchant order number (must be unique)                                                                                     |
| orderNo        | String  | Platform order number                                                                                                      |
| amount         | String  | Transaction amount                                                                                                         |
| fee            | String  | Handling fee                                                                                                               |
| status         | Integer | Status (0 - Not started, 1 - In progress, 2 - Success (final state), 3 - Failure (final state), -1 - Pending confirmation) |
| payTime        | String  | Payment success time (available when status=2) (Korean time), format: yyyy-MM-dd HH:mm:ss                                  |
| errorMsg       | String  | Payment failure reason (available when status=3)                                                                           |
| sign           | String  | Signature                                                                                                                  |

### **Payment Methods**

| Currency | Payment Type (accountType) | Payment Code (bankCode) | Limits       | Status    | Description                        |
| -------- | -------------------------- | ----------------------- | ------------ | --------- | ---------------------------------- |
| KRW      | BANK\_ACCOUNT              | KOPOKRS1                | 1000-1500000 | Available | Korea Post(Epost)                  |
| KRW      | BANK\_ACCOUNT              | KWABKRSE                | 1000-1500000 | Available | Kwangju Bank(KJ)                   |
| KRW      | BANK\_ACCOUNT              | KYNAKR22                | 1000-1500000 | Available | Kyongnam Bank                      |
| KRW      | BANK\_ACCOUNT              | NACFKRSE                | 1000-1500000 | Available | Nonghyup Bank(NH)                  |
| KRW      | BANK\_ACCOUNT              | NFFCKRSE                | 1000-1500000 | Available | Suhyup Local Cooperatives          |
| KRW      | BANK\_ACCOUNT              | PUSBKR2P                | 1000-1500000 | Available | Busan Bank(BNK)                    |
| KRW      | BANK\_ACCOUNT              | KODBKRSE                | 1000-1500000 | Available | Korea Development Bank(KDB)        |
| KRW      | BANK\_ACCOUNT              | SCBLKRSE                | 1000-1500000 | Available | Standard Chartered Korea(SC First) |
| KRW      | BANK\_ACCOUNT              | SHBKKRSE                | 1000-1500000 | Available | Shinhan Bank                       |
| KRW      | BANK\_ACCOUNT              | SSISKRSS                | 1000-1500000 | Available | Shinhan Investment                 |
| KRW      | BANK\_ACCOUNT              | HVBKKRSE                | 1000-1500000 | Available | Woori Bank                         |
| KRW      | BANK\_ACCOUNT              | CITIKRSXKAK             | 1000-1500000 | Available | K Bank                             |
| KRW      | BANK\_ACCOUNT              | CZNBKRSE                | 1000-1500000 | Available | Kookmin-Bank(KB)                   |
| KRW      | BANK\_ACCOUNT              | DAEBKR22                | 1000-1500000 | Available | Daegu Bank(DGB)                    |
| KRW      | BANK\_ACCOUNT              | DEUTKRSE                | 1000-1500000 | Available | Deutsche Bank                      |
| KRW      | BANK\_ACCOUNT              | ETSIKRS1                | 1000-1500000 | Available | eBEST Investment and Securities    |
| KRW      | BANK\_ACCOUNT              | HNBNKRSE                | 1000-1500000 | Available | KEB Hana Bank                      |
| KRW      | BANK\_ACCOUNT              | HSBCKRSE                | 1000-1500000 | Available | HSBC                               |
| KRW      | BANK\_ACCOUNT              | CITIKRSX                | 1000-1500000 | Available | Citibank Korea                     |
| KRW      | BANK\_ACCOUNT              | IBKOKRSE                | 1000-1500000 | Available | Industrial Bank of Korea(IBK)      |
| KRW      | BANK\_ACCOUNT              | JEONKRSE                | 1000-1500000 | Available | Jeonbuk Bank(JB)                   |
| KRW      | BANK\_ACCOUNT              | JJBKKR22                | 1000-1500000 | Available | Jeju Bank                          |
| KRW      | BANK\_ACCOUNT              | KAKOKR22                | 1000-1500000 | Available | KAKAO Bank                         |

## Related Topics

* [Common API](/docs/en/api/version2/CommonApi)
* [HaiPay API Description and Common Rules](/docs/en/guide/api_description_guide)
* [Hong Kong Payment API](/docs/en/api/version2/HongKong)
