Skip to content

Last updated: September 14, 2022

Start accepting payments using one of the top e-wallets in South Korea. KakaoPay provides a mobile payment service, allowing its customers to make one-time purchases or sign up for a recurring payment.

KakaoPay is a part of Ant Financial’s e-wallet network, which enables it to be used in countries outside of the local market, as long as the regions are covered by Ant’s partners.

When accepting payments with KakaoPay, you need to display the Alipay+ and KakaoPay logos on your payment interface. To ensure that the logos match Alipay's requirements, refer to their Brand display guidelines for online payments and Brand display guidelines for cashier payments.

Information

To learn more, reach out to your Customer Success Manager or support@checkout.com.

Model

Collecting

Payment flow

Redirect

Payment method type

Wallet

One-step payment

check

Authorization

error

Capture

error

Refund

check

Partial refund

check

Chargeback

error

Recurring payment

check

Supported countries and currencies

Supported countries

  • EU countries
  • Hong Kong
  • Singapore
  • United Kingdom

Supported processing and settlement currencies

  • EUR
  • HKD
  • SGD
  • GBP

KakaoPay has a 2-step process:

  1. Request a payment
  2. Redirect the customer

Request a payment

For the full API specification, see the API reference.

post

https://api.checkout.com/payments

Request example

If a customer ID or email is not provided in the request, we automatically create a customer profile and return the customer ID in the response.

1
{
2
"amount": 1100,
3
"currency": "EUR",
4
"source": {
5
"type": "kakaopay"
6
},
7
"processing": {
8
"terminal_type": "APP",
9
"os_type": "IOS"
10
},
11
"success_url": "https://example.com/payments/success",
12
"failure_url": "https://example.com/payments/failure",
13
"payment_type": "Regular",
14
"reference": "ORD-5023-4E89",
15
"capture": true,
16
"customer": {
17
"email": "john.smith@example.com"
18
},
19
"shipping": {
20
"address": {
21
"country": "GB"
22
}
23
},
24
"items": [{
25
"reference": "1st item reference",
26
"name": "1st item name",
27
"unit_price": 10
28
}],
29
"processing_channel_id": "pc_ekaubqrravqupfxde7kxvd2t3i"
30
}

Response example

If you receive a 202 Success response with a payment id and a status field set to Pending, your request was successful.

1
{
2
"id": "pay_sxzrgliy2w3e5gpnby3chlswwq",
3
"status": "Pending",
4
"reference": "ORD-5023-4E89",
5
"customer": {
6
"id": "cus_2g4ehcpm6phexgkzahlwxvbgne",
7
"email": "john.smith@example.com",
8
"name": "John Smith"
9
},
10
"_links": {
11
"self": {
12
"href": "https://gwc.ckotech.co/gateway/payments/pay_sxzrgliy2w3e5gpnby3chlswwq"
13
},
14
"redirect": {
15
"href": "https://psp.ac.alipay.com/page/simulation-wallet/acwallet/alipayconnectcode.html?code=281666040095AHvh5AIKT0a3kv8X6Zzv3kiv&pspName=KAKAOPAY&loadMode=2"
16
}
17
}
18
}

Redirect the customer

Redirect your customer to the redirect link’s href in the response. This will allow the customer to authorize the payment, before they are transferred to your predefined success or failure URL.


Request a recurring payment

You can set up recurring payments for a subscription-based service. This allows you to make pre-authorized fund deductions from a customer’s account.

To request a recurring payment, your payment request should have payment_type set to recurring.

To get a detailed view of all required and optional fields, see our API reference.

post

https://api.checkout.com/payments

Initial request example

1
{
2
"amount": 1100,
3
"currency": "EUR",
4
"source": {
5
"type": "kakaopay"
6
},
7
"processing": {
8
"terminal_type": "WEB"
9
},
10
"success_url": "https://example.com/payments/success",
11
"failure_url": "https://example.com/payments/failure",
12
"payment_type": "Recurring",
13
"reference": "ORD-5023-4E89",
14
"capture": "true",
15
"customer": {
16
"email": "john.smith@example.com",
17
"name": "John Smith"
18
},
19
"shipping": {
20
"address": {
21
"country": "GB"
22
}
23
},
24
"items": [{
25
"reference": "1st item reference",
26
"name": "1st item name",
27
"unit_price": 10
28
}],
29
"processing_channel_id": "pc_ekaubqrravqupfxde7kxvd2t3i"
30
}

Initial response example

If you receive a 202 Success response with a payment id and a status field set to Pending, your request was successful.

1
{
2
"id": "pay_4z3h7526xn6evko3vnybrmnu4e",
3
"status": "Pending",
4
"reference": "ORD-5023-4E89",
5
"customer": {
6
"id": "cus_2g4ehcpm6phexgkzahlwxvbgne",
7
"email": "john.smith@example.com",
8
"name": "John Smith"
9
},
10
"source": {
11
"id": "src_gnyde6bvifsukobwjb2vkwkbni",
12
"type": "kakaopay"
13
},
14
"_links": {
15
"self": {
16
"href": "https://gwc.ckotech.co/gateway/payments/pay_4z3h7526xn6evko3vnybrmnu4e"
17
},
18
"redirect": {
19
"href": "https://g.alipayplus.com/page/aplus-linker/acwallet/qrcode.html?url=alipayconne"
20
}
21
}
22
}

Subsequent request example

1
{
2
"amount": 44,
3
"currency": "EUR",
4
"source": {
5
"type": "id",
6
"id": "src_inmwstthmjyfcskeir3gcqtyj4"
7
},
8
"payment_type": "Recurring",
9
"reference": "ORD-5023-4E89-1234",
10
"customer": {
11
"name": "John Smith",
12
"email": "john.smith@example.com"
13
},
14
"shipping": {
15
"address": {
16
"country": "GB"
17
}
18
},
19
"items": [{
20
"reference": "1st item reference",
21
"name": "1st item name",
22
"unit_price": 43,
23
"quantity": 1
24
}],
25
"processing_channel_id": "pc_ekaubqrravqupfxde7kxvd2t3i"
26
}

Subsequent response example

If you receive a 202 Success response with a payment id and a status field set to Pending, your request was successful.

1
{
2
"id": "pay_xljv6f7ye4lebinkv7i7pho634",
3
"status": "Pending",
4
"reference": "ORD-5023-4E89-1234",
5
"customer": {
6
"id": "cus_mzrvode5g2jubm4bgbaad2usbu",
7
"email": "john.smith@example.com",
8
"name": "John Smith"
9
},
10
"source": {
11
"id": "src_inmwstthmjyfcskeir3gcqtyj4",
12
"type": "kakaopay"
13
},
14
"_links": {
15
"self": {
16
"href": "https://gwc.ckotech.co/gateway/payments/pay_xljv6f7ye4lebinkv7i7pho634"
17
}
18
}
19
}

Get details about a payment

You can retrieve details about an existing KakaoPay payment by using the payment id found in the payment response.

Use the details below to set up your request.

Endpoints

For the full API specification, see the API reference.

get

https://api.checkout.com/payments/{id}

Response example

1
{
2
"id":"pay_sxzrgliy2w3e5gpnby3chlswwq",
3
"requested_on":"2022-09-02T07:15:58.894077Z",
4
"source":{
5
"type":"kakaopay"
6
},
7
"items":[
8
{
9
"name":"1st item name",
10
"unit_price":10,
11
"reference":"1st item reference"
12
}
13
],
14
"amount":1100,
15
"currency":"EUR",
16
"payment_type":"Regular",
17
"reference":"ORD-5023-4E89",
18
"status":"Captured",
19
"approved":true,
20
"balances":{
21
"total_authorized":1100,
22
"total_voided":0,
23
"available_to_void":0,
24
"total_captured":1100,
25
"available_to_capture":0,
26
"total_refunded":0,
27
"available_to_refund":1100
28
},
29
"customer":{
30
"id":"cus_mzrvode5g2jubm4bgbaad2usbu",
31
"email":"john.smith@example.com",
32
"name":"John Smith"
33
},
34
"shipping":{
35
"address":{
36
"country":"GB"
37
}
38
},
39
"processing":{
40
"partner_customer_id":"210220900020124540718"
41
},
42
"_links":{
43
"self":{
44
"href":"https://gwc.ckotech.co/gateway/payments/pay_7domcpi745nu5bdhm5rtrblbem"
45
},
46
"actions":{
47
"href":"https://gwc.ckotech.co/gateway/payments/pay_7domcpi745nu5bdhm5rtrblbem/actions"
48
},
49
"refund":{
50
"href":"https://gwc.ckotech.co/gateway/payments/pay_7domcpi745nu5bdhm5rtrblbem/refunds"
51
}
52
}
53
}

Refund a payment

KakaoPay supports both partial and full refunds. You can refund a payment through the Dashboard or using the refund API.

post

https://api.checkout.com/payments/{id}/refunds

Request example

1
{
2
"amount": 20
3
}

Response example

1
{
2
"action_id": "act_c4x2vjvnx4uelb4io72fa4e57a",
3
"_links": {
4
"payment": {
5
"href": "http://gwc.ckotech.co/gateway/payments/pay_fzzdurog3squjj2ityho7x3o64"
6
}
7
}
8
}

Webhooks

You may receive the following webhooks when using KakaoPay.

WebhookDescription

payment_pending

Sent when a merchant initiates the payment request.

payment_capture_pending

Sent when a payment request has been successfully initiated and payment is pending for capture.

payment_captured

Sent when the payment has been successfully captured.

payment_declined

Sent when a payment request has been rejected.

payment_refund_pending

Sent when the refund of the payment has been (fully or partially) accepted.

payment_refunded

Sent when the payment has been (fully or partially) refunded.

payment_refund_declined

Sent when a refund has been declined.

View all of our webhook notifications.


Testing KakaoPay

Before you begin testing, you'll need to contact your Customer Success Manager or Implementation Engineer to:

  • Activate KakaoPay payments in the sandbox environment.
  • Get credentials to access the Alipay+ Linker app.

To start testing once you've completed merchant onboarding to KakaoPay:

  1. Sign in to the sandbox environment using the username and password provided by your Customer Success Manager.
  2. Create a KakaoPay sandbox transaction by following the Request a payment instructions.
  3. Use the testing credentials to know what to do next depending on the device you are using.

Testing credentials

When requesting a KakaoPay payment, there are specific steps to follow depending on the device being used and the processing.terminal_type specified in the payment request.

Deviceprocessing.terminal_typeAfter selecting redirect link

Computer

APP

Select Pay Now

Application

APP

Select Pay Now

Computer

WEB

For this method, make sure you have set up KakaoPay as an e-wallet under Common Settings in the Alipay+ Linker app. To choose the correct e-wallet, select TEST_WALLET.

  1. Sign in to Alipay+ Linker app with the credentials provided by your Customer Success Manager.
  2. Select KAKAOPAY as an e-wallet under Common Settings.
  3. Select Scan.
  4. Scan the QR code from your computer screen.
  5. Select Pay Now.

Application

WEB

  1. Open the URL with the Alipay+ Linker app. You will be redirected to a payment confirmation page.
  2. Select Pay Now.