South Korea Payment API
About 2345 wordsAbout 8 min
Warning
Before reading this API documentation, be sure to review the API Description Guide
Limits
| Transaction Type | Limit |
|---|---|
| Collection | USD: 0.99-1000, KRW: 1000-1500000 |
| Payout | KRW: 1000-1500000 |
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: Donald John Trump |
| phone | Yes | String | Real phone number (format reference Phone Number Format) |
| 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 | Yes | String | Payment method |
| callBackUrl | Yes | String | URL to redirect after successful payment |
| callBackFailUrl | Yes | String | URL to redirect after failed payment |
| 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
{
"appId": 1054,
"orderId": "M22222000028",
"sign": "EmyJGm3ELzG4FsOd0Krs9ncbSjo4oTGuXWML+7djYla3+VAwd9wS17z38p/7U2ZAjroO04XrE7YXcB1o76Dtyipj3h3bJzs7FYma1QNkMUdt9hh7m8U6hMsMQX7vIWHtXNwz4pbTSC75+kQWXaCew7KoE6LXECdJU8AISgNgeki2TK9R0pCfshr0Z2SZBPeuT6OvIH5LdmqgdZhuqnffGU2qnXk4KMkO848e6/WALLBR+LE1wyKHfPnYVcuKSMVYxkvKyyIL5JIPEgW0o5bh4RCbaUn3NZtyYwrU1uQ3ZDFRThm9j6XAQP+LBlmq3nOePqBtp/VDVarRaV+7FbQg3A=="
}response
{
"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
| Currency | Payment Type (payType) | Payment Code (inBankCode) | Limits | Status | Description |
| KRW | BANK_TRANSFER | KAKAOPAY_KRW | 1000-1500000 | Available | Kakao Pay Wallet |
| KRW | BANK_TRANSFER | NAVERPAY_KRW | 1000-1500000 | Available | Naver Pay Wallet |
| KRW | BANK_TRANSFER | 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) |
| USD | BANK_TRANSFER | KAKAOPAY_USD | 0.99-1000 | Available | Kakao Pay Wallet |
| USD | BANK_TRANSFER | NAVERPAY_USD | 0.99-1000 | Available | Naver Pay Wallet |
| USD | BANK_TRANSFER | 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 |
| 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)
{
"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
{
"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
{
"appId": 1000,
"orderId": "M1234567111",
"orderNo": "3022111516571436",
"sign": "ZxkVZL+GAyv0VhvWn4IvuYahTzxgQuthkuV2ONWiqIfIDb2avvHlFOUJVzqZi1q8CPHXZm1ltanRTRVTxfsuftLvGeDioUHglWt46/RU6c1OPznpLGsZ35Q3n5tW2y1EnOsxPynXBFLuDQy+aZ3l9u6AQ30T0zQexMGT+IxuFkmUp02g/6juaHa5ZgNMv7lN67ixIp162wrM7OJuaOif872QijSceRdZhzaMGImAwB0D4MosRV4WMBOKkwgPdmS7GuZN66YUidXk3wTGqX3MYRw6M0kj4eNegSUwPXvp4q4p0KO8Y3xUMld54GY2ApX3WN3CBtC/vpJqEszjGBbbGg=="
}response — Order Failed
{
"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
{
"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 | SAMCKRSL | 1000-1500000 | Available | Samsung Securities |
| KRW | BANK_ACCOUNT | KOPOKRS1 | 1000-1500000 | Available | Korea Post(Epost) |
| KRW | BANK_ACCOUNT | KWABKRSE | 1000-1500000 | Available | Kwangju Bank(KJ) |
| KRW | BANK_ACCOUNT | KYBOKRSE | 1000-1500000 | Available | Kyobo Securities |
| KRW | BANK_ACCOUNT | KYNAKR22 | 1000-1500000 | Available | Kyongnam Bank |
| KRW | BANK_ACCOUNT | MHCBKRSE | 1000-1500000 | Available | Mirae Asset Daewoo |
| 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 | SECDKRS1 | 1000-1500000 | Available | Daishin Securities |
| KRW | BANK_ACCOUNT | SEOSKRS1 | 1000-1500000 | Available | Eugene Investment and Securities |
| KRW | BANK_ACCOUNT | SHBKKRSE | 1000-1500000 | Available | Shinhan Bank |
| KRW | BANK_ACCOUNT | SHHEKRS1 | 1000-1500000 | Available | Hyundai Motor Securities |
| KRW | BANK_ACCOUNT | SKSEKRS1 | 1000-1500000 | Available | SK Securities |
| KRW | BANK_ACCOUNT | SSISKRSS | 1000-1500000 | Available | Shinhan Investment |
| KRW | BANK_ACCOUNT | WISHKRSE | 1000-1500000 | Available | NH Investment and Securities |
| 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 | HNWSKRSS | 1000-1500000 | Available | Hanhwa Investment and Securities |
| KRW | BANK_ACCOUNT | HSBCKRSE | 1000-1500000 | Available | HSBC |
| KRW | BANK_ACCOUNT | CITIKRSX | 1000-1500000 | Available | Citibank Korea |
| KRW | BANK_ACCOUNT | HYSEKRSE | 1000-1500000 | Available | KB Securities |
| 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 |
| KRW | BANK_ACCOUNT | KFBCKRSE | 1000-1500000 | Available | Meritz Securities |
| KRW | BANK_ACCOUNT | KISEKRSE | 1000-1500000 | Available | Korea Investment and Securities |
| KRW | BANK_ACCOUNT | KIWCKRSE | 1000-1500000 | Available | Kiwoom Securities |