KakaoPay

KakaoPay is a mobile payment and digital wallet service launched in September 2014 by KakaoPay Corporation. It ranks among South Korea's top three mobile payment services , with over 40 million users.Learn more.

Payment Method Properties

MarketsKR
Processing currenciesKRW
Consumer currenciesKRW
Settlement currenciesUSD
Authentication methodsREDIRECT
Minimum payment amount50 KRW
Maximum payment amount2,000,000 KRW
Recurring paymentsYes
Separate capturesNo
RefundFull - Partial - Multiple
Refund validity365 days
ChargebackNo
Sandbox availabilityKakaoPay sandbox

Recurring Payments

KakaoPay offers recurring payment support - we simplify this flow for you with our Payment Agreements API.

Create the Payment Agreement

To set up a recurring agreement for KakaoPay, you'll need to provide at minimum the following data when calling our /v1/payment-agreements API:

Data FieldRequiredDescription
paymentMethodYKAKAOPAY
consumer.nameYFull name of the consumer.
consumer.countryYThe country from which the consumer is shopping.
startDateOThe date-time from which the recurring agreement is valid.

You can also include the initialPaymentCharge object in this agreement creation call to immediately initiate the first payment without making a separate call. If you include this object, you'll need to specify:

  • The exact amount.value and amount.currency of the first payment

Request

{
  "paymentMethod": "KAKAOPAY",
  "consumer": {
    "name": "Test User 1",
    "country": "KR"
  },
  "amount": {
    "value": 101,
    "currency": "KRW"
  },
  "authenticationSettings": [
    {
      "type": "REDIRECT",
      "settings": {
        "returnUrl": "https://ppro.com"
      }
    }
  ],
  "initialPaymentCharge": {
    "autoCapture": true,
    "paymentDescriptor": "fundsEventType=Received;fundsEventScheduleDelay=10s",
    "amount": {
      "value": 101,
      "currency": "KRW"
    },
    "merchantPaymentChargeReference": "ABC987654321"
  }
}

If you don't include an initialPaymentCharge during agreement creation, you'll need to make a separate API call to /v1/payment-agreements/{agreement_id}/payment-charges to create the first charge.

Response

You'll receive one of our standard payment agreement responses (see responses in the API Reference)

{
  "id": "agr_123456789",
  "status": "AUTHENTICATION_PENDING",
  "paymentMethod": "KAKAOPAY",
  "startDate": "2025-03-05T12:16:53.651Z",
  "amount": {
    "value": 101,
    "currency": "KRW"
  },
  "instrumentId": "instr_123456789",
  "consumer": {
    "name": "Test User 1",
    "country": "KR"
  },
  "authenticationMethods": [
    {
      "details": {
        "requestUrl": "https://authman.sandbox.lp-pl.ppro.com/v0/redirections/forward?redirection_token=abc.def.ghi",
        "requestMethod": "GET"
      },
      "type": "REDIRECT"
    }
  ],
  "history": [
    {
      "id": "ahist_123456789",
      "status": "AUTHENTICATION_PENDING",
      "createdAt": "2025-03-05T12:16:55.791Z"
    }
  ],
  "createdAt": "2025-03-05T12:16:55.791Z",
  "updatedAt": "2025-03-05T12:16:55.791Z"
}

Redirect the consumer to url specified in requestUrl. The consumer will be taken to KakaoPay to log into their account and approve the payment agreement.

Once the consumer has confirmed the recurring agreement creation, the agreement status will transition to ACTIVE, and subsequent payments can be made without consumer interaction.

Make Subsequent Recurring Charges

Once you've set up a payment agreement, it's simple to create subsequent charges against it. In your /v1/payment-agreements/{agreement-id}/payment-charges/ request, you just need to include:

{
  "paymentDescriptor": "Illustrator",
  "amount": {
    "value": 102,
    "currency": "KRW"
  },
  "merchantPaymentChargeReference": "XYZ0123456789"
}

You will receive webhooks for all charges created under a Payment Agreement the same way you would for individual charges, and can respond accordingly.