1. Configure Danal PG settings

Refer to the Danal settings page to configure the PG settings.

2. Request payment

To open the Danal TPay payment window, call JavaScript SDK IMP.request_pay(param, callback).

In both PC and mobile browsers, callback is invoked after calling IMP.request_pay(param, callback).

Javascript SDK
IMP.request_pay( { pg: "danal_tpay", pay_method: "card", merchant_uid: "{Merchant created Order ID}", // Example: order_no_0001 name: "Order name: Test payment request", amount: 14000, buyer_email: "iamport@siot.do", buyer_name: "John Doe", buyer_tel: "010-1234-5678", buyer_addr: "Shinsa-dong, Gangnam-gu, Seoul", buyer_postcode: "123-456", }, function (rsp) { // callback logic //* ...Omitted... *// }, );

Key parameter description

pg * string

PG code

  • If not specified and this is the only PG setting that exists, default PG is automatically set.
  • If there are multiple PG settings, set to danal_tpay.

pay_method * string

Payment method code

merchant_uid * string

Order ID

Must be unique for each request.

buyer_tel * string

Customer phone number

Danal payment window may throw an error if omitted

amount * integer

Payment amount

Must be an integer (not string)

Virtual account payment requirement

  • biz_num: 10-digit business registration number (required)

To open non-authenticated payment window, specify the customer_uid parameter.

amount

  • If requesting both billing key and initial payment, specify the payment amount.

  • If only requesting for billing key, set to 0.
    (if amount is set to 0, Danal executes a test payment of 10 won which is automatically cancelled after 30 minutes.)

Javascript SDK
IMP.request_pay( { pg: "danal_tpay", pay_method: "card", // only 'card' supported. merchant_uid: "{Merchant created Order ID}", // Example: issue_billingkey_monthly_0001 name: "Order name: Billing key request test", amount: 0, // For display purpose only (set actual amount to also request payment approval). customer_uid: "{Unique ID for the card (billing key)}", // Required (Example: gildong_0001_1234) buyer_email: "johndoe@gmail.com", buyer_name: "John Doe", buyer_tel: "02-1234-1234", buyer_addr: "Samseong-dong, Gangnam-gu, Seoul", period: { from: "20200101", //YYYYMMDD to: "20201231", //YYYYMMDD }, }, function (rsp) { if (rsp.success) { alert("Success"); } else { alert("Failed"); } }, );

Key parameter description

pg * string

PG code

  • If not specified and this is the only PG setting that exists, default PG is automatically set.
  • If there are multiple PG settings, set to danal_tpay.

customer_uid * string

Credit card billing key

Billing key to be mapped 1:1 with the user-entered credit card information.

amount * Integer

Payment amount

0: only billing key, > 0: billing key + initial payment

period`` array

Product subscription payment for subscription payment. The date is displayed on the Danal payment window.

from: YYYYMMDD

to: YYYYMMDD\

Request payment with billing key (customer_uid)

After successfully getting the billing key, the billing key is stored on the i'mport server mapped 1:1 with the specified customer_uid. For security reasons, the server cannot directly access the billing key. Subsequent payments can be requested by calling the non-authenticated payment request REST API with the customer_uid as follows:

sever-side
curl -H "Content-Type: application/json" \ -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ https://api.iamport.kr/subscribe/payments/again

3. Additional functions

javascript
{ "display": { "card_quota": [6] // Display up to 6 months installment plans } }

Parameters

  • card_quota :
    • []: Only immediate pay
    • 3,6: immediate, 3, 6 month installment plans

Installment plan option is available only for KRW 50,000 or more.

javascript
{ "card": { "direct": { "code": "367", "quota": 3, "usePoint": "Y" } } }

Parameters

  • code: Credit card code (string)
  • quota: Installment plan. For immediate, set to 0. (integer)
  • usePoint: Option to use points (post applied)

Danal setup required

  • Direct module call requires pre-setup by Danal.
javascript
{ "card": { "detail": [ { "card_code": "*", "enabled": false }, // Disable all credit cards { "card_code": "366", "enabled": true } // Enable specific credit card ] } }

Parameters

  • card_code: Credit card code (string)

  • enabled: Option to enable the credit card (boolean)